Cod sursa(job #3138289)

Utilizator Cosmin.BoeriuCosmin Boeriu George Cosmin.Boeriu Data 18 iunie 2023 18:00:24
Problema Schi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

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

int v[30000], arb[60001], n;

void adaugare(int poz, int l, int r, int i, int sarite){
    if( poz >= n ){
        arb[poz] = i+1;
        return;
    }
    int mij = ( l + r ) / 2;
    if( mij - l + 1 - arb[2*poz] + sarite >= v[i] ){
        adaugare(2*poz, l, mij, i, sarite);
    }
    else{
        adaugare(2*poz+1, mij+1, r, i, sarite + mij - l + 1 - arb[2*poz]);
    }
    arb[poz]++;
}

void afis(int poz, int l, int r){
    if( l == r ){
        fout<<arb[poz]<<'\n';
        return;
    }
    int mij = (l + r) / 2;
    afis(2 * poz, l, mij);
    afis(2*poz+1, mij+1, r);

}

int main()
{
    int i;

    fin>>n;
    for( i = 0; i < n; i++ )
        fin>>v[i];
    for( i = n - 1; i >= 0; i-- ){
        adaugare(1, 1, n, i, 0);
    }
    afis(1, 1, n);

    return 0;
}