Pagini recente » Cod sursa (job #1997835) | Cod sursa (job #852836) | Cod sursa (job #2916719) | Cod sursa (job #1760004) | Cod sursa (job #2592336)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int N=1 << 17, Q=30001;
int t[N], v[Q], sol[Q];
int poz, val;
void actualizare(int p, int st, int dr)
{
if(st==dr)
{
sol[st]=val;
t[p]++;
return;
}
int m=(st+dr)/2;
if(poz<=m-st+1-t[2*p])
actualizare(2*p, st, m);
else
{
poz-=(m-st+1-t[2*p]);
actualizare(2*p+1, m+1, dr);
}
t[p]++;
}
int main()
{
int n, q;
cin>>n;
for(int i=1; i<=n; i++)
cin>>v[i];
t[1]=1;
for(int i=n; i>=1; i--)
{
val=i;
poz=v[i];
actualizare(1,1,n);
}
for(int i=1; i<=n; i++)
cout<<sol[i]<<"\n";
return 0;
}