Advertisement
Manh_LK

Giải thưởng

Apr 9th, 2020
1,121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. long long int A[100005];
  4. long long int B[100005];
  5. void sortA(int l, int r)
  6. {
  7.     long long int pivot = A[(l + r) / 2];
  8.     int i = l;
  9.     int j = r;
  10.     while (i <= j)
  11.     {
  12.         while (A[i] < pivot) i++;
  13.         while (A[j] > pivot) j--;
  14.         if (i <= j)
  15.         {
  16.             long long int tmpt = A[i];
  17.             A[i] = A[j];
  18.             A[j] = tmpt;
  19.             i++; j--;
  20.         }
  21.     }
  22.     if (l < j) sortA(l, j);
  23.     if (r > i) sortA(i, r);
  24. }
  25. void sortB(int l, int r)
  26. {
  27.     long long int pivot = B[(l + r) / 2];
  28.     int i = l;
  29.     int j = r;
  30.     while (i <= j)
  31.     {
  32.         while (B[i] < pivot) i++;
  33.         while (B[j] > pivot)j--;
  34.         if (i <= j)
  35.         {
  36.             long long int tmpt = B[i];
  37.             B[i] = B[j];
  38.             B[j] = tmpt;
  39.             i++; j--;
  40.         }
  41.     }
  42.     if (l < j) sortB(l, j);
  43.     if (r > i)sortB(i, r);
  44. }
  45. int main()
  46. {
  47.     freopen("input.txt", "r", stdin);
  48.     int n;
  49.     cin >> n;
  50.     for (int i = 0; i < n; i++)
  51.     {
  52.         cin >> A[i];
  53.     }
  54.     sortA(0, n - 1);
  55.     B[0] = A[0];
  56.     int index = 0;
  57.     long long int sum = A[0], res = 0;
  58.     for (int i = 1; i < n; i++)
  59.     {
  60.         if (B[index] == A[i])
  61.         {
  62.             sum += A[i];
  63.         }
  64.         else
  65.         {
  66.             B[index] = sum;
  67.             B[++index] = sum = A[i];
  68.         }
  69.     }
  70.     B[index] = sum;
  71.     sortB(0, index);
  72.     for (int i = 1; i <= index; i++)
  73.     {
  74.         res += B[i];
  75.     }
  76.     cout << res;
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement