Pagini recente » Cod sursa (job #519061) | Cod sursa (job #135527) | Cod sursa (job #745237) | Cod sursa (job #657798) | Cod sursa (job #381772)
Cod sursa(job #381772)
#include <fstream.h>
int v[65001],v1[65001],v2[65001];
int lfin(int l,int r,int nod,int i)
{--v1[nod];
if (l==r)
return l;
if (i<=v1[2*nod])
return lfin(l,(l+r)/2,2*nod,i);
else
return lfin((l+r)/2+1,r,2*nod+1,i-v1[2*nod]);
}
int main()
{int n,i,x=2;
ifstream q("schi.in");
ofstream w("schi.out");
q>>n;
while(x<n)
x=x*2;
for (i=1;i<n+1;i++)
q>>v[i];
for (i=x;i<x+n;i++)
v1[i]=1;
for (i=x-1;i>0;i--)
v1[i]=v1[2*i]+v1[2*i+1];
for (i=n;i>0;i--)
v2[lfin(1,x,1,v[i])]=i;
for (i=1;i<n+1;i++)
w<<v2[i]<<"\n";
return 0;
}