Cod sursa(job #2759513)

Utilizator stefanlupoi1Lupoi Stefan stefanlupoi1 Data 18 iunie 2021 18:08:46
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

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

const int N = 30001;

int v[N], ans[N], t[1 << 17], x;

void update(int p, int l, int r, int poz, int el){
    t[p]++;
    if(l == r){
        ans[l] = el;
        return;
    }
    int m = (l + r) / 2, fl = p + p, fr = fl + 1;
    if(poz <= m - l + 1 - t[fl]){
        update(fl, l, m, poz, el);
    }
    else{
        update(fr, m + 1, r, poz - (m - l + 1 - t[fl]), el);
    }
}

int main()
{
    int n;
    in >> n;
    for(int i = 1; i <= n; i++){
        in >> v[i];
    }
    for(int i = n; i > 0; i--){
        update(1, 1, n, v[i], i);
    }
    for(int i = 1; i <= n; i++){
        out << ans[i] << '\n';
    }
    return 0;
}