Pagini recente » Cod sursa (job #2343704) | Cod sursa (job #1843360) | Cod sursa (job #151642) | Cod sursa (job #352539) | Cod sursa (job #2759625)
#include <fstream>
using namespace std;
ifstream cin("schi.in");
ofstream cout("schi.out");
int v[30002],ans[30002],t[100002],i;
void solve(int val,int p,int st,int dr)
{
if(st==dr)
{
t[p]=1;
ans[st]=i;
return;
}
int m=(st+dr)/2;
if(val<=m-st+1-t[2*p])
solve(val,2*p,st,m);
else
solve(val-(m-st+1-t[2*p]),2*p+1,m+1,dr);
t[p]=t[2*p]+t[2*p+1];
}
int main()
{
int n;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=n;i>=1;i--)
solve(v[i],1,1,n);
for(i=1;i<=n;i++)
cout<<ans[i]<<'\n';
return 0;
}