Pagini recente » Cod sursa (job #2837693) | Cod sursa (job #2780132) | Cod sursa (job #2357843) | Cod sursa (job #3260712) | Cod sursa (job #1549630)
#include<cstdio>
#include<algorithm>
using namespace std;
struct eu{int x,y;};
eu vec[100001];
bool sorting(eu a,eu b)
{
if(a.x<b.x)
return 1;
return 0;
}
int v[100001],vc[100001],i,j,n,m,k;
void add(int poz,int val)
{
while(poz<=n)
{
v[poz]+=val;
poz+=poz^(poz&poz-1);
}
}
int find(int poz)
{
int s=0;
while(poz>=1)
{
s+=v[poz];
poz-=poz^(poz&poz-1);
}
return s;
}
int main ()
{
freopen("schi.in","r",stdin);
freopen("schi.out","w",stdout);
scanf("%d",&n);
for(i=n;i>=1;i--)
scanf("%d",&vc[i]);
for(i=1;i<=n;i++)
{
m=vc[i];
int ci=0,nr=0;
while(nr!=find(m+nr))
nr=find(m+nr);
m+=nr;
vec[n-i+1].x=m;
vec[n-i+1].y=n-i+1;
add(m,1);
}
sort(vec+1,vec+n+1,sorting);
for(i=1;i<=n;i++)
printf("%d\n",vec[i].y);
return 0;
}