Pagini recente » Cod sursa (job #1311569) | Cod sursa (job #1877461) | Cod sursa (job #158087) | Cod sursa (job #2891424) | Cod sursa (job #2952892)
#include<bits/stdc++.h>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
int n,v[30001],aib[30001],s[30001];
void abc(int x,int y)
{
for(int i=x;i<=n;i+=i&(-i))
aib[i]+=y;
}
int suma(int x)
{int s=0;
for(int i=x;i>=1;i-=i&(-i))
s+=aib[i];
return s;
}
int cbin(int x)
{int st=1,dr=n;
while(st<=dr)
{int m=(st+dr)/2;
if(suma(m)<x) st=m+1;
else dr=m-1;}
return st;
}
int main()
{in>>n;
for(int i=1;i<=n;i++)
in>>v[i],abc(i,1);
for(int i=n;i>=1;i--)
{s[cbin(v[i])]=i;
abc(cbin(v[i]),-1);}
for(int i=1;i<=n;i++)
out<<s[i]<<'\n';
return 0;
}