Pagini recente » Cod sursa (job #1620075) | Cod sursa (job #174175) | Cod sursa (job #1225839) | Cod sursa (job #2792867) | Cod sursa (job #1434842)
#include <fstream>
using namespace std;
fstream fin("order.in", ios::in);
fstream fout("order.out", ios::out);
#define MAXN 30005
int T[4 * MAXN + 10], N, val = -1, l_val = 2, no;
void update(int node, int l, int r, bool bd = false)
{
if (l == r) { T[node] = !bd ? 0 : 1; no = l; return; }
int mid = (l + r) / 2;
if (T[node * 2] >= val) update(node * 2, l, mid, bd);
else !bd ? val -= T[node * 2] : val += 0,
update(node * 2 + 1, mid + 1, r, bd);
if (bd) update(node * 2 + 1, mid + 1, r, bd);
T[node] = T[node * 2 + 1] + T[node * 2];
}
int main()
{
fin >> N;
update(1, 1, N, 1);
for (int i = 1; i <= N; ++i){
val = l_val + i - 1;
val %= T[1];
if (!val) val = T[1];
l_val = val;
update(1, 1, N);
fout << no << " ";
}
fin.close();
fout.close();
return 0;
}