Cod sursa(job #2752823)

Utilizator DavvDrgDavid Dragostin DavvDrg Data 19 mai 2021 18:56:56
Problema Schi Scor 65
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
const int N=1<<18;
int t[N],poz,ord,clasament[30001];
void actual(int p, int st, int dr)
{
    t[p]++;
    if(st==dr)
    {
        clasament[st]=poz;
        return;
    }
    int m=(st+dr)/2;
    if(ord<=(m-st+1)-t[2*p])
    {
        actual(2*p, st, m);
    }
    else
    {
        ord-=(m-st+1)-t[2*p];
        actual(2*p+1, m+1, dr);
    }
}
int val[30001];
int main()
{
    int n;
    in>>n;
    for(int i=1; i<=n; i++)
    {
        in>>val[i];
    }
    for(int i=n; i>=1; i--)
    {
        ord=val[i];
        poz=i;
        actual(1, 1, n);
    }
    for(int i=1; i<=n; i++)
    {
        out<<clasament[i]<<endl;
    }
    return 0;
}