Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define ull unsigned ll
- #define ld long double
- #define be(a) a.begin(), a.end()
- #define L(x, n) for (int x = 0; x < n; ++x)
- #define F first
- #define S second
- #pragma GCC optimize("Ofast")
- using namespace std;
- int main() {
- freopen("input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- int n;
- cin >> n;
- vector <int> a(n);
- for (int &i : a)
- cin >> i;
- for (int i = 1; i < n; i <<= 1)
- for (int j = 0; j < n; j += (i << 1)) {
- int l = j, r = j + i, L = r, R = min(r + i, n);
- vector <int> b;
- while (l < L && r < R)
- if (a[l] <= a[r])
- b.push_back(a[l++]);
- else
- b.push_back(a[r++]);
- while (l < L)
- b.push_back(a[l++]);
- while (r < R)
- b.push_back(a[r++]);
- for (int k = 0; k < b.size(); ++k)
- a[j + k] = b[k];
- }
- for (int &i : a)
- cout << i << ' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment