Submission #940202

#TimeUsernameProblemLanguageResultExecution timeMemory
940202Darren0724Swap (BOI16_swap)C++17
0 / 100
1 ms1116 KiB
#include <bits/stdc++.h> using namespace std; #define LCBorz ios_base::sync_with_stdio(false); cin.tie(0); #define all(x) x.begin(), x.end() #define endl '\n' const int N=200005; const int INF=1e9; int n; vector<int> v(N); int mn(int i){ int a=i*2,b=i*2+1; if(a>n)return v[i]; if(b>n)return min(v[a],v[i]); return min({v[a],v[b],v[i]}); } int32_t main() { LCBorz; cin>>n; for(int i=1;i<=n;i++){ cin>>v[i]; } for(int i=1;i<=n;i++){ int a=i*2,b=i*2+1; if(a>n)break; if(b>n){ if(v[a]<v[i])swap(v[a],v[i]); break; } int id=0; vector<int> c={v[i],mn(a),mn(b)}; for(int mask=1;mask<4;mask++){ if(mask&1)swap(v[i],v[a]); if(mask&2)swap(v[i],v[b]); vector<int> d={v[i],mn(a),mn(b)}; if(mask&2)swap(v[i],v[b]); if(mask&1)swap(v[i],v[a]); if(c>d){ id=mask; c=d; } } if(id&1)swap(v[i],v[a]); if(id&2)swap(v[i],v[b]); } for(int i=1;i<=n;i++){ cout<<v[i]<<' '; } cout<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...