Cod sursa(job #2752816)

Utilizator Davla2Stancu Vlad Davla2 Data 19 mai 2021 18:48:20
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

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]<<"\n";
    }
    return 0;
}