Cod sursa(job #3363964)

Utilizator Zeno1789Zeno Ciuca Zeno1789 Data 25 august 2026 17:47:10
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

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

int n;
int pos[30005];
int ans[30005];
int aib[30005];

void update(int idx,int val) {
    while (idx<=n) {
        aib[idx]+=val;
        idx+=idx & (-idx);
    }
}

int find_kth(int k) {
    int current_pos=0;
    for (int step=1<<14; step>0; step>>=1) {
        if (current_pos+step<=n && aib[current_pos+step]<k) {
            current_pos+=step;
            k-=aib[current_pos];
        }
    }
    return current_pos+1;
}

int main() {
    cin>>n;
    for (int i=1; i<=n; i++) {
        cin>>pos[i];
        update(i,1);
    }
    for (int i=n; i>=1; i--) {
        int final_pos=find_kth(pos[i]);
        ans[final_pos]=i;
        update(final_pos,-1);
    }
    for (int i=1; i<=n; i++) {
        cout<<ans[i]<<'\n';
    }
}