Cod sursa(job #3229179)

Utilizator ReBeGhElRebegea Stefan ReBeGhEl Data 14 mai 2024 11:09:04
Problema Schi Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("schi.in");
ofstream cout("schi.out");

vector < int > aib;
vector < int > ax,ans;

int n;

void update(int i ,int val)
{
    while(i<=n)
    {
        aib[i]+=val;
        i+=(i&(-i));
    }
}

int sum(int i)
{
    int ret=0;
    while(i)
    {
        ret+=aib[i];
        i-=(i&(-i));
    }
    return ret;
}

int main()
{
    cin>>n;
    ax.resize(n+1);
    aib.resize(n+1);
    ans.resize(n+1);
    for(int i=1;i<=n;i++)
        cin>>ax[i];
    for(int i=n;i>=1;i--)
    {
        int poz = ax[i];
        int x = sum(poz);
        update(poz+x,1);
        while(ans[poz+x]!=0)
            x++;
        ans[poz+x]=i;
    }
    for(int i=1;i<=n;i++)
        cout<<ans[i]<<'\n';
    return 0;
}