Pagini recente » Cod sursa (job #436195) | Cod sursa (job #823116) | Cod sursa (job #410341) | Cod sursa (job #320526) | Cod sursa (job #2772732)
#include <fstream>
using namespace std;
ifstream fin("schi.in");
ofstream fout("schi.out");
const int nmax=30000, n2max=(1<<15);
int v[n2max*2], u[nmax+1], sol[nmax+1];
int query(int nod, int l, int r, int ui){
++v[nod];
if(l==r){
return r;
}else if((r-l+1)/2-v[nod*2]>=ui){
return query(nod*2,l,(l+r)/2,ui);
}else{
return query(nod*2+1,(l+r)/2+1,r,ui-(r-l+1)/2+v[nod*2]);
}
}
int main(){
int n;
fin>>n;
for(int i=1;i<=n;i++){
fin>>u[i];
}
int n2=1;
while(n2<n){
n2*=2;
}
for(int i=n;i>0;i--){
sol[query(1,1,n2,u[i])]=i;
}
for(int i=1;i<=n;i++){
fout<<sol[i]<<"\n";
}
return 0;
}