Cod sursa(job #2952892)

Utilizator BalanelBalan Stefan Balanel Data 10 decembrie 2022 10:32:08
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("schi.in");
ofstream out("schi.out");
int n,v[30001],aib[30001],s[30001];
void abc(int x,int y)
{
for(int i=x;i<=n;i+=i&(-i))
    aib[i]+=y;
}
int suma(int x)
{int s=0;
for(int i=x;i>=1;i-=i&(-i))
    s+=aib[i];
return s;
}
int cbin(int x)
{int st=1,dr=n;
while(st<=dr)
    {int m=(st+dr)/2;
    if(suma(m)<x) st=m+1;
             else dr=m-1;}
return st;
}
int main()
{in>>n;
for(int i=1;i<=n;i++)
    in>>v[i],abc(i,1);
for(int i=n;i>=1;i--)
    {s[cbin(v[i])]=i;
    abc(cbin(v[i]),-1);}
for(int i=1;i<=n;i++)
    out<<s[i]<<'\n';
return 0;
}