Pagini recente » Cod sursa (job #1990158) | Cod sursa (job #936233) | Cod sursa (job #979043) | Cod sursa (job #2399946) | Cod sursa (job #2242634)
#include <fstream>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int MAXN = 1e6;
int n, a[MAXN], b[MAXN], c[MAXN];
int col[MAXN], urm[MAXN];
int main() {
in >> n >> a[1] >> b[1] >> c[1];
for (int i = 2; i <= n - 1; ++ i) {
a[i] = (1LL * a[i - 1] * i) % n;
b[i] = (1LL * b[i - 1] * i) % n;
c[i] = (1LL * c[i - 1] * i) % n;
}
for (int i = n - 1; i; -- i) {
int st = min(a[i], b[i]);
int dr = max(a[i], b[i]);
while (st <= dr) {
if (!col[st]) {
col[st] = c[i];
urm[st] = dr + 1;
++ st;
}
else {
st = urm[st];
}
}
}
for (int i = 1; i <= n - 1; ++ i)
out << col[i] << '\n';
return 0;
}