Cod sursa(job #2307320)

Utilizator SchnitzelMannPavaloiu Gabriel SchnitzelMann Data 24 decembrie 2018 12:19:21
Problema Schi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
int n,a[30002],loc[30002],fin[30002];
void update(int i)
{
    while(i<=n)
    {
        a[i]++;
        i+=(i&(-i));
    }
}
int q(int i)
{
    int s=0;
    while(i)
    {
        s+=a[i];
        i-=(i&(-i));
    }
    return s;
}
int main()
{
    int i,nr;
    in>>n;
    for(i=1;i<=n;i++)
        in>>loc[i];
    for(i=n;i>0;i--)
    {
        nr=q(loc[i]);
        while(nr!=q(loc[i]+nr))
            nr=q(loc[i]+nr);
        loc[i]+=nr;
        fin[loc[i]]=i;
        update(loc[i]);
    }
    for(i=1;i<=n;i++)
        out<<fin[i]<<"\n";
    return 0;	
}