Submission #566061

#TimeUsernameProblemLanguageResultExecution timeMemory
566061Waratpp123Swap (BOI16_swap)C++14
0 / 100
0 ms212 KiB
#include<bits/stdc++.h> using namespace std; int a[200010],n,d; int play(int i,int k){ if(2*i>n) return i; int l=2*i; int r=2*i+1; if(a[i]<a[l]&&a[i]<a[r]) return i; if(a[i]>a[l]&&a[r]>a[l]) { return play(l,k); } int pl=play(l,k),pr=play(r,k); if(pl<pr) d=l; else d=r; return min(pl,pr); } int main(){ int i,l,r,x,y,j; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&a[i]); } if(n%2==0) a[n+1]=99999999; for(i=1;2*i<=n;i++){ l=2*i; r=2*i+1; if(a[i]<a[l]&&a[i]<a[r]) continue; if(a[l]<a[i]&&a[r]>a[l]) { swap(a[i],a[l]); continue; } x=min(a[l],a[i]); y=max(a[l],a[i]); a[i]=a[r]; play(i,x); if(d==l) a[l]=x,a[r]=y; else a[l]=y,a[r]=x; } for(i=1;i<=n;i++){ printf("%d ",a[i]); } return 0; }

Compilation message (stderr)

swap.cpp: In function 'int main()':
swap.cpp:19:19: warning: unused variable 'j' [-Wunused-variable]
   19 |     int i,l,r,x,y,j;
      |                   ^
swap.cpp:20:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
swap.cpp:22:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |         scanf("%d",&a[i]);
      |         ~~~~~^~~~~~~~~~~~
#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...