Pagini recente » Cod sursa (job #569099) | Cod sursa (job #1332050)
#include <fstream>
using namespace std;
ifstream f("schi.in");
ofstream g("schi.out");
int i,T,N,K,P,v[100005],r[100005],aib[100005],maxi;
void update(int x)
{
for(int j=x;j<=N;j+=j&(-j))
aib[j]--;
}
int querry(int x)
{
int val=0,i,s;
for (i=0,s=1<<16;s;s>>=1)
if (i + s <= N && aib[i+s] < x)
{
x-=aib[i+s];
i+=s;
}
return i+1;
}
int main()
{
f>>N;
for (i=1;i<=N;++i)
f>>v[i];
for(i=1;i<=N;++i)
aib[i]=i&(-i);
for(i=N;i;--i)
{
int pos=querry(v[i]);
r[pos]=i;
update(pos);
}
for(i=1;i<=N;++i)
g<<r[i]<<'\n';
return 0;
}