Pagini recente » Cod sursa (job #1555011) | Cod sursa (job #2626900) | Cod sursa (job #1739794) | Cod sursa (job #729835) | Cod sursa (job #2424393)
#include<bits/stdc++.h>
using namespace std;
#define MAX 16
int bit[12005],n,k,k1,pos,rs;
void update(int index, int val){
while(index<=n){
bit[index]+=val;
index+=index&(-index);
}
}
void aflare(){
for(int h=16;0<=h;h--){
if(k1+(1<<h)<n){
if(rs+bit[k1+(1<<h)]<pos){
rs+=bit[k1+(1<<h)];
k1+=(1<<h);
}
}
}
}
int main(){
ifstream cin("order.in");
ofstream cout("order.out");
cin>>n;
for(int i=1;i<=n;i++)
update(i,1);
k=2;
for(int i=1;i<=n;i++){
pos=(k+i-2)%(n-i+1)+1;
rs=0;
k1=0;
aflare();
k++;
update(k1,-1);
cout<<k1<<" ";
k=pos;
}
return 0;
}