Apkawa

Мердж снизу

Sep 11th, 2021
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ull unsigned ll
  4. #define ld long double
  5. #define be(a) a.begin(), a.end()
  6. #define L(x, n) for (int x = 0; x < n; ++x)
  7. #define F first
  8. #define S second
  9. #pragma GCC optimize("Ofast")
  10. using namespace std;
  11.  
  12. int main() {
  13.     freopen("input.txt", "r", stdin);
  14.     //freopen("output.txt", "w", stdout);
  15.     ios_base::sync_with_stdio(0);
  16.     cin.tie(0);
  17.  
  18.     int n;
  19.     cin >> n;
  20.     vector <int> a(n);
  21.     for (int &i : a)
  22.         cin >> i;
  23.     for (int i = 1; i < n; i <<= 1)
  24.         for (int j = 0; j < n; j += (i << 1)) {
  25.             int l = j, r = j + i, L = r, R = min(r + i, n);
  26.             vector <int> b;
  27.             while (l < L && r < R)
  28.                 if (a[l] <= a[r])
  29.                     b.push_back(a[l++]);
  30.                 else
  31.                     b.push_back(a[r++]);
  32.             while (l < L)
  33.                 b.push_back(a[l++]);
  34.             while (r < R)
  35.                 b.push_back(a[r++]);
  36.             for (int k = 0; k < b.size(); ++k)
  37.                 a[j + k] = b[k];
  38.         }
  39.     for (int &i : a)
  40.         cout << i << ' ';
  41.  
  42.     return 0;
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment