Cod sursa(job #2952974)

Utilizator gifiVidru Rares gifi Data 10 decembrie 2022 11:47:56
Problema Schi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
using namespace std;
ifstream cin("schi.in");
ofstream cout("schi.out");
int n,V[30001],B[30001],S[30001];
void mod(int i1,int i2)
{for (int i=i1;i<=n;i+=i&(-i)) B[i]+=i2;
}
int sum(int i1)
{int suma=0;
for (int i=i1;i>=1;i-=i&(-i)) suma+=B[i];
return suma;
}
int cautare_binare(int i1)
{int l=1,r=n;
while(l<=r)
    {int m=(l+r)/2;
    if(sum(m)<i1) l=m+1;
             else r=m-1;

    }
return l;
}
int main()
{cin>>n;
for (int i=1;i<=n;i++) cin>>V[i],mod(i,1);
for (int i=n;i>=1;i--)
    {S[cautare_binare(V[i])]=i;
    mod(cautare_binare(V[i]),-1);
    }
for (int i=1;i<=n;i++) cout<<S[i]<<'\n';
return 0;
}