Pagini recente » Cod sursa (job #640564) | Monitorul de evaluare | Istoria paginii utilizator/luci_bura | Cod sursa (job #2176146) | Cod sursa (job #1074518)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
const int N=300003;
int n,t[N],v[N],f[N],x,val,poz;
void query(int p,int st,int dr)
{
if(st==dr)
{
t[p]++;
poz=st;
return;
}
int m=(st+dr)/2,m1,m2;
if(x<=m-st+1-t[p])
query(2*p,st,m);
else
{
x-=m-st+1-t[p];
query(2*p+1,m+1,dr);
}
t[p]++;
}
void update(int p,int st,int dr)
{
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
for(int i=n;i>=1;i--)
{
x=v[i];
query(1,1,n);
f[poz]=i;
}
for(int i=1;i<=n;i++)
out<<f[i]<<' ';
return 0;
}