Cod sursa(job #3335782)

Utilizator mihaigeorgescuGeorgescu Mihai mihaigeorgescu Data 23 ianuarie 2026 16:14:53
Problema Order Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;
ifstream fcin("order.in");
ofstream fout("order.out");
int n,poz=2,aib[30005];
inline void update(int nod, int x)
{
    for(int i=nod; i<=n; i+=(i & (-i)))
        aib[i]+=x;
}
inline int cb(int val)
{
    int sol=0, sum=0;
    for(int i=(1<<10); i>0; i>>=1)
        if((sol|i)<=n && sum+aib[sol|i]<val)
           sol|=i, sum+=aib[sol];
    return sol+1;
}
int main()
{
    fcin>>n;
    for(int i=1; i<=n; i++)
        update(i,1);
    for(int i=1; i<=n; i++)
    {
        poz=(poz+i-1)%(n-i+1);
        if(i==n) poz=1;
        int rez=cb(poz);
        fout<<rez<<" ";
        update(rez,-1);
    }
    return 0;
}