Pagini recente » Cod sursa (job #1446857) | Cod sursa (job #1312741) | Cod sursa (job #2354968) | Cod sursa (job #2964207) | Cod sursa (job #2811018)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int kN = 1e6;
int a[kN], b[kN], c[kN], jump[kN], sol[kN];
void testCase() {
int n;
fin >> n >> a[1] >> b[1] >> c[1];
jump[1] = 1;
for (int i = 2; i < n; ++i) {
a[i] = (int64_t)a[i - 1] * i % n;
b[i] = (int64_t)b[i - 1] * i % n;
c[i] = (int64_t)c[i - 1] * i % n;
jump[i] = i;
}
jump[n] = n;
for (int i = n - 1; i > 0; --i) {
int l = min(a[i], b[i]), r = max(a[i], b[i]);
while (l <= r) {
if (jump[l] == l) {
sol[l] = c[i];
jump[l] = jump[r + 1];
} else {
l = jump[l];
}
}
}
for (int i = 1; i < n; ++i) {
fout << sol[i] << '\n';
}
}
int main() {
int tests = 1;
for (int tc = 1; tc <= tests; ++tc) {
testCase();
}
fin.close();
fout.close();
return 0;
}