Advertisement
gitman3

swap to max

May 28th, 2024 (edited)
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6.     int n;
  7.     cin >> n;
  8.     vector<int> A(n);
  9.  
  10.     for (int i = 0; i < n; i++) {
  11.         cin >> A[i];
  12.     }
  13.  
  14.     bool swapped = 1;
  15.  
  16.     while (swapped) {
  17.         swapped = 0;
  18.         for (int i = 0; i < n - 1; i++) {
  19.             long long current = A[i] * (i + 1) + A[i + 1] * (i + 2);
  20.             long long updated = A[i + 1] * (i + 1) + A[i] * (i + 2);
  21.  
  22.             if (current < updated) {
  23.                 swap(A[i], A[i + 1]);
  24.                 swapped = 1;
  25.             }
  26.         }
  27.     }
  28.  
  29.     long long sum = 0;
  30.     for (int i = 0; i < n; ++i) {
  31.         sum += A[i] * (i + 1);
  32.     }
  33.  
  34.     cout << sum << endl;
  35.  
  36.     return 0;
  37. }
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement