Pagini recente » Cod sursa (job #1310423) | Cod sursa (job #1400574) | Cod sursa (job #2718023) | Cod sursa (job #2356865) | Cod sursa (job #35756)
Cod sursa(job #35756)
# include <stdio.h>
# define _fin "schi.in"
# define _fout "schi.out"
# define maxn 30003
int arb[maxn], n, a[maxn], ord[maxn];
void update(int i)
{
int ii;
for (ii=i; ii<=n; ii += ii & (-ii)) arb[ii]++;
}
int query(int i)
{
int ii, ret=0;
for (ii=i; ii>0; ii &= ii-1) ret += arb[ ii ];
return ret;
}
int main()
{
freopen(_fin, "r", stdin);
freopen(_fout,"w", stdout);
int i, poz;
for (scanf("%d", &n), i=1; i<=maxn; i++) scanf("%d", a+i);
ord[ a[n] ] = n, update( a[n] );
for (i=n-1; i>=1; i--)
{
poz = query( a[i] ) + a[i];
while ( ord[poz] ) ++poz;
ord[ poz ] = i;
update( a[i] );
}
for (i=1; i<=n; i++) printf("%d\n", ord[i]);
return 0;
}