Pagini recente » Cod sursa (job #356145) | Cod sursa (job #869048) | Cod sursa (job #2817895) | Cod sursa (job #551341) | Cod sursa (job #2205044)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
const int N=30005;
int n,a[N],t[N],rez[N];
void modific(int p, int a, int b, int poz, int val)
{
++t[p];
if (a == b)
{
rez[a] = poz;
return;
}
int m = (a + b) / 2, liberist;
liberist = m - a + 1 - t[2*p];
if (val <= liberist)
{
modific(2*p, a, m, poz, val);
}
else
{
modific(2*p+1, m+1, b, poz, val - liberist);
}
}
int main()
{
int i;
in>>n;
for(i=1; i<=n; i++)
{
in>>a[i];
}
for(i=n;i>=1;i--)
modific(1,1,n,i,a[i]);
for(i=1; i<=n; i++)
out<<rez[i]<<'\n';
return 0;
}