Cod sursa(job #1074444)

Utilizator AlexMateialex matei AlexMatei Data 7 ianuarie 2014 17:51:54
Problema Schi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream f ("schi.in");
ofstream g ("schi.out");
int n,v[30000],i,q[66000],x,y,j,w[30000];
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    for(i=n;i>=1;i--)
    {
        j=1;
        x=n;
        y=1;
        q[j]++;
        while(x!=y)
        {
            if((x+y)/2-y+1-q[j*2]>=v[i])
            {
                x=(x+y)/2;
                j*=2;
                q[j]++;
            }
            else
            {
                v[i]=v[i]-((x+y)/2-y+1-q[j*2]);
                y=(x+y)/2+1;
                j=j*2+1;
                q[j]++;
            }
        }
        w[x]=i;
    }
    for(i=1;i<=n;i++)
        g<<w[i]<<'\n';
}