Cod sursa(job #851837)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 10 ianuarie 2013 15:23:31
Problema Schi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}