Cod sursa(job #2560746)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 28 februarie 2020 11:18:06
Problema Schi Scor 90
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define dim 30005
using namespace std;
ifstream fin("schi.in");
ofstream fout("schi.out");
int n,v[dim],i,poz,st,dr,mid,x;
int aib[dim],sol[dim];
inline int query(int poz)
{
    int r=0;
    for(; poz; poz-=poz&-poz)
        r+=aib[poz];
    return r;
}
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];
    for(i=n; i>=1; i--)
    {
        st=1,dr=n,mid;
        x=v[i];
        while(st<=dr)
        {
            mid=(st+dr)/2;
            if(mid>=query(mid)+x)
                dr=mid-1;
            else st=mid+1;
        }
        sol[st]=i;
        for(; st<=n; st+=st&-st)
        aib[st]+=1;
    }
    for(i=1; i<=n; i++)
        fout<<sol[i]<<"\n";
}