Pagini recente » Cod sursa (job #261068) | Cod sursa (job #2028144) | Cod sursa (job #113024) | Cod sursa (job #3251033) | Cod sursa (job #3170031)
#include <fstream>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int LMAX = 1000005;
int a[LMAX], b[LMAX], c[LMAX], exactcol[LMAX], nxt[LMAX];
int main() {
int n;
fin >> n >> a[1] >> b[1] >> c[1];
nxt[1] = 1;
for (int i = 2; i < n ; i++) {
a[i] = (a[i-1] * i) % n;
b[i] = (b[i-1] * i) % n;
c[i] = (c[i-1] * i) % n;
nxt[i] = i;
}
nxt[n] = n;
for (int i = n-1; i > 0; i--) {
int x, y;
x = min(a[i], b[i]);
y = max(a[i], b[i]);
while (x <= y) {
if (exactcol[x] == 0) {
exactcol[x] = c[i];
nxt[x] = y + 1;
}
x = nxt[x+1];
}
}
for (int i = 1; i < n; i++) {
fout << exactcol[i]<<endl;
}
fin.close();
fout.close();
return 0;
}