Cod sursa(job #3364596)

Utilizator TudorMitMituca Tudor TudorMit Data 6 septembrie 2026 19:20:02
Problema Order Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;

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

int aib[30005];
int n;

void upd(int poz, int val){
    for(int i=poz;i<=n;i+=i&-i)
        aib[i]+=val;
}

int qr(int k){
    int poz=0;
    for(int i=1<<15;i>0;i>>=1){
        if(poz+i<=n && aib[poz+i]<k){
            poz+=i;
            k-=aib[poz];
        }
    }
    return poz+1;
}

int main(){
    int poz=1,el;
    cin>>n;
    for(int i=1;i<=n;i++)
        upd(i,1);
    for(int i=1;i<=n;i++){
        poz=(poz+i-1)%(n-i+1);
        el=qr(poz+1);
        cout<<el<<" ";
        upd(el,-1);
    }

    return 0;
}