Time Limits: 1000 ms Memory Limits: 65536 KB Detailed Limits
1 #include<bits/stdc++.h> 2 #define ri register int 3 #define il inline 4 #define go(i,a,b) for(ri i=(a);i<=(b);++i) 5 using namespace std; 6 template<class T> il T read(T& a) { 7 char c;bool f=0; 8 for(;!isdigit(c=getchar());f|=(c=='-')); 9 for(a=c-'0';isdigit(c=getchar());a=a*10+c-'0'); 10 return a=(f?-a:a); 11 } 12 const int N=1e5+7; 13 int n,a,p[N],ans,tr[N]; 14 il void add(ri x,ri f) {for(;x<=n;x+=(x&-x))tr[x]+=f;} 15 il int ask(ri x) {int r=0;for(;x;x-=(x&-x))r+=tr[x];return r;} 16 int mian() { 17 read(n); 18 go(i,1,n) p[read(a)]=i,add(i,1); 19 go(i,1,n-1) { 20 if(i&1) { 21 ri t=(i+1)>>1; 22 cout<<ask(p[t]-1)<<'\n'; 23 add(p[t],-1); 24 }else { 25 ri t=n-(i>>1)+1; 26 cout<<ask(n)-ask(p[t])<<'\n'; 27 add(p[t],-1); 28 } 29 }puts("0"); 30 return 0; 31 }