Submission #75033

#TimeUsernameProblemLanguageResultExecution timeMemory
75033charlies_mooTurnir (COCI17_turnir)C++98
100 / 100
730 ms28076 KiB
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n,anss; int ans[2000000]; struct Node { int num,idx; }a[2000000]; bool cmp(Node a,Node b) { return a.num<b.num; } int pow2(int a) { int ret=1; for(int i=1;i<=a;i++) ret*=2; return ret; } int log2(int from) { int i; for(i=0;pow2(i)<=from;i++); return i-1; } int main() { cin>>n; int deep=n,from_; n=pow2(n); for(int i=1;i<=n;i++) { a[i].idx=i; cin>>a[i].num; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { int k=a[i].num; from_=i; while(a[i].num<=k && i<=n) i++; i--,anss=deep-log2(i); for(int j=from_;j<=i;j++) ans[a[j].idx]=anss; } for(int i=1;i<=n;i++) cout<<ans[i]<<' '; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...