Pagini recente » Cod sursa (job #2968380) | Cod sursa (job #43249) | Cod sursa (job #2580021) | Cod sursa (job #2143573) | Cod sursa (job #3156288)
#include <bits/stdc++.h>
using namespace std;
const int MN=3e5+5;
int arb[MN*2];
int n;
void update(int poz, int x)
{
poz+=n-1;
for(;poz>0;poz>>=1)
{
arb[poz]+=x;
}
}
int query(int val)
{
int poz=1;
for(poz<<=1; poz<2*n; poz<<=1)
{
if(arb[poz]<val)
{
val-=arb[poz++];
}
}
return (poz>>1)-n+1;
}
int v[MN];
int ans[MN];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];
update(i,1);
}
for(int i=n;i>=1;i--)
{
int poz=query(v[i]);
update(poz, -1);
ans[poz]=i;
}
for(int i=1;i<=n;i++)
{
cout<<ans[i]<<'\n';
}
return 0;
}