Cod sursa(job #1838259)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 31 decembrie 2016 15:50:11
Problema Schi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream fin("schi.in");
ofstream fout("schi.out");
int a[120005],b[30005],n,i,c[30005],el;
void initializeaza(int nod,int p,int u)
{
a[nod]=u-p+1;
el++;
if(p!=u)
{
int mij=(p+u)/2;
initializeaza(2*nod,p,mij);
initializeaza(2*nod+1,mij+1,u);
}
}
void modifica(int nod,int p,int u,int v)
{
int mij=(p+u)/2;
if(p!=u)
{
if(a[2*nod]>=v)
modifica(2*nod,p,mij,v);
else
modifica(2*nod+1,mij+1,u,v-a[2*nod]);
}
else
c[p]=i;
a[nod]--;
}
int main()
{
fin>>n;
initializeaza(1,1,n);
for(i=1;i<=n;i++)
fin>>b[i];
for(i=n;i>0;i--)
modifica(1,1,n,b[i]);
for(i=1;i<=n;i++)
fout<<c[i]<<"\n";
return 0;
}