Cod sursa(job #2205044)

Utilizator vladboss2323Ciorica Vlad vladboss2323 Data 17 mai 2018 18:58:48
Problema Schi Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("schi.in");
ofstream out("schi.out");

const int N=30005;

int n,a[N],t[N],rez[N];


void modific(int p, int a, int b, int poz, int val)
{
    ++t[p];
    if (a == b)
    {
        rez[a] = poz;
        return;
    }
    int m = (a + b) / 2, liberist;
    liberist = m - a + 1 - t[2*p];
    if (val <= liberist)
    {
        modific(2*p, a, m, poz, val);
    }
    else
    {
        modific(2*p+1, m+1, b, poz, val - liberist);
    }
}

int main()
{
    int i;
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>a[i];
    }
    for(i=n;i>=1;i--)
        modific(1,1,n,i,a[i]);
    for(i=1; i<=n; i++)
        out<<rez[i]<<'\n';

    return 0;
}