Pagini recente » Rating staic raluca (ral3x) | Cod sursa (job #1923574) | Cod sursa (job #1081675) | Cod sursa (job #631417) | Cod sursa (job #2917911)
#include <bits/stdc++.h>
#define L D + 5
#define D (1 << 15)
#define lsb(x) (x & (-x))
using namespace std;
ifstream fin("order.in");
ofstream fout("order.out");
int aib[L];
inline void update(int pos, int val){
for (; pos < L; pos += lsb(pos))
aib[pos] += val;
}
inline int query(int x){
int i, ret = 0, s = 0;
for (i = D; i; i /= 2)
if (aib[ret + i] + s < x){
ret += i;
s += aib[ret];
}
return ret;
}
int main(){
int n, i, x = 2, y = 2;
fin >> n;
for (i = 1; i <= n; i++)
update(i, 1);
fout << "2 ";
for (i = 1; i < n; i++){
update(x, -1);
y = (y + i - 1) % (n - i) + 1;
x = query(y) + 1;
fout << x << " ";
}
fout << "\n";
return 0;
}