Cod sursa(job #3365014)

Utilizator RobertIon013Ion Robert Andrei RobertIon013 Data 15 septembrie 2026 18:54:25
Problema Order Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin ("order.in");
ofstream fout ("order.out");
int n;
vector<int> bit;
void add(int i,long long x)
{
    for(;i<=n;i+=i&-i)
    {
        bit[i]+=x;
    }
}
int kth(int k)
{
    int idx=0;
    for(int i=1<<15;i>0;i>>=1)
    {
        if(idx+i<=n&&k>bit[idx+i])
        {
            idx+=i;
            k-=bit[idx];
        }
    }
    return idx+1;
};
int main()
{
    fin>>n;
    vector<int> v(n+1),t(n+1);
    bit.assign(n+1,0);
    for(int i=1;i<=n;i++)
    {
        add(i,1);
    }
    int s=0;
    for(int i=1;i<=n;i++)
    {
        int nr=n-i+1;
        s=(s+i-1)%nr;
        int p=kth(s+1);
        add(p,-1);
        if(p+1<=n)fout<<p+1<<" ";
        else
        {
            fout<<1<<" ";
        }
    }

    return 0;
}