Pagini recente » Cod sursa (job #383487) | Cod sursa (job #383569) | Cod sursa (job #1072643) | Cod sursa (job #276892) | Cod sursa (job #851837)
Cod sursa(job #851837)
#include <iostream>
#include <fstream>
using namespace std;
int x[33333],a[100000],v[33333],n;
ifstream in("schi.in");
ofstream out("schi.out");
void scoate(int poz, int val, int st, int dr, int k)
{
if(st==dr)
{
x[st]=k;
a[poz]=0;
return;
}
if(a[2*poz]>=val)
{
scoate(2*poz,val,st,(st+dr)/2,k);
}
else
{
scoate(2*poz+1,val-a[2*poz],(st+dr)/2+1,dr,k);
}
a[poz]--;
return;
}
int main()
{
int i;
in>>n;
a[1]=n;
for(i=2;i<=2*n;++i)
{
if(i%2==0)
{
a[i]=a[i/2]/2;
}
else
{
a[i]=a[i/2]-a[i-1];
}
}
for(i=1;i<=n;++i)
{
in>>v[i];
}
for(i=n;i;--i)
{
scoate(1,v[i],1,n,i);
}
for(i=1;i<=n;++i)
{
out<<x[i]<<"\n";
}
return 0;
}