#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define int long long
const int MOD = 1e9 + 7;
const int INF = 1e15;
const int N = 1e6;
int n, m, k, a, b, c, d, h, l, r, q, u, v, x, y;
vector<int> ans;
vector<int> perm;
void rec(int ind) {
if(2*ind>n) {
for(int i = 1; i<=n; i++) {
if(ans[i]==perm[i]) continue;
if(perm[i] < ans[i]) {
for(int j = 1; j<=n; j++) ans[j]=perm[j];
}
break;
}
return;
}
if(2*ind==n) {
x = min({perm[ind], perm[2*ind]});
}
else x = min({perm[ind], perm[2*ind], perm[2*ind+1]});
if(x==perm[ind]) {
rec(ind+1);
}
else if(x==perm[2*ind]) {
swap(perm[ind], perm[2*ind]);
rec(ind+1);
swap(perm[ind], perm[2*ind]);
}
else if(2*ind != n){
swap(perm[ind], perm[2*ind+1]);
rec(ind+1);
swap(perm[ind], perm[2*ind+1]);
swap(perm[ind], perm[2*ind]);
swap(perm[ind], perm[2*ind+1]);
rec(ind+1);
swap(perm[ind], perm[2*ind]);
swap(perm[ind], perm[2*ind+1]);
}
}
void solve() {
cin >> n;
vector<int> arr(n+1);
ans.pb(0);
perm.pb(0);
for(int i = 1; i<=n; i++) {
cin >> arr[i];
ans.pb(arr[i]);
perm.pb(arr[i]);
}
rec(1);
for(int i = 1; i<=n; i++) cout << ans[i] << " ";
}
int32_t main() {
ios::sync_with_stdio(false);
cout.tie(0); cin.tie(0);
int tc = 1;
// cin >> tc;
while(tc--) {
solve();
cout << "\n";
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |