Cod sursa(job #2513100)

Utilizator VictorB11Badulescu Victor VictorB11 Data 22 decembrie 2019 13:21:14
Problema Schi Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("schi.in");
ofstream fout ("schi.out");

int suma(int a[], int st, int dr)
{
    if (st==dr)
        return a[st];
    return (suma(a, st, (st+dr)/2)+suma(a, (st+dr)/2+1, dr));
}


int main()
{
    int n;
    fin>>n;
    int a[n+1], v[n+1], s[n+1];
    for (int i=1; i<=n; i++)
    {
        fin>>v[i];
        a[i]=1;
    }
    int st, dr, summ;
    for (int i=n; i>0; i--)
    {
        st=1;
        dr=n;
        do
        {
            summ=suma(a, st, (st+dr)/2);
            if(v[i]<= summ)
                dr=(st+dr)/2;
            else
            {
                v[i]-=summ;
                st=(st+dr)/2+1;
            }
        }while(st!=dr);
        a[st]=0;
        s[st]=i;
    }
    for (int i=1; i<=n; i++) fout<<s[i]<<"\n";
    return 0;
}