Cod sursa(job #1678374)

Utilizator KOzarmOvidiu Badea KOzarm Data 7 aprilie 2016 11:37:30
Problema Schi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream fin("schi.in");
ofstream fout("schi.out");
int a[120005],b[30005],n,i,c[30005];
void initializeaza(int nod,int p,int u)
{
    a[nod]=u-p+1;
    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(a[nod]>0)
    {
        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=2;i<=n+1;i++)
        fout<<c[i]<<"\n";
    return 0;
}