Cod sursa(job #2759625)

Utilizator mihnea.cazan15mihnea cazan mihnea.cazan15 Data 19 iunie 2021 12:57:41
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;
ifstream cin("schi.in");
ofstream cout("schi.out");
int v[30002],ans[30002],t[100002],i;
void solve(int val,int p,int st,int dr)
{
    if(st==dr)
    {
        t[p]=1;
        ans[st]=i;
        return;
    }
    int m=(st+dr)/2;
    if(val<=m-st+1-t[2*p])
       solve(val,2*p,st,m);
    else
        solve(val-(m-st+1-t[2*p]),2*p+1,m+1,dr);
    t[p]=t[2*p]+t[2*p+1];
}
int main()
{
    int n;
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>v[i];
    for(i=n;i>=1;i--)
        solve(v[i],1,1,n);
    for(i=1;i<=n;i++)
        cout<<ans[i]<<'\n';
    return 0;
}