Cod sursa(job #3364595)

Utilizator TudorMitMituca Tudor TudorMit Data 6 septembrie 2026 19:18:34
Problema Order Scor 0
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=0,el;
    cin>>n;
    for(int i=1;i<=n;i++)
        upd(i,1);
    for(int i=1;i<=n;i++){
        poz=(poz+i)%(n-i+1);
        el=qr(poz+1);
        cout<<el<<" ";
        upd(el,-1);
    }

    return 0;
}