제출 #75825

#제출 시각아이디문제언어결과실행 시간메모리
75825charlies_mooTurnir (COCI17_turnir)C++98
100 / 100
718 ms28236 KiB
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n; int ans[(1<<20)+5]; struct Node { int num,idx; }a[(1<<20)+5]; bool cmp(Node a,Node b) { return a.num<b.num; } int main() { cin>>n; int deep=n,from_=1,bound=2; n=1<<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=2;i<=n;i++) { if(a[from_].num!=a[i].num) { for(int j=from_;j<i;j++) ans[a[j].idx]=deep; from_=i; } if(i==bound) { deep--; bound*=2; } } for(int i=from_;i<=n;i++) ans[a[i].idx]=0; for(int i=1;i<=n;i++) cout<<ans[i]<<' '; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...