Pagini recente » Cod sursa (job #1097183) | Cod sursa (job #1191214) | Cod sursa (job #2160569) | Cod sursa (job #1736591) | Cod sursa (job #2475714)
//#include "pch.h"
#include <fstream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
class ansType {
public:
int color, idx;
};
int main() {
int n, A1, B1, C1;
fin >> n >> A1 >> B1 >> C1;
vector <int> A(n + 2), B(n + 2), C(n + 2), nxt(n + 2);
vector <ansType> ans(n + 2);
A[1] = A1;
B[1] = B1;
C[1] = C1;
for (int idx = 2; idx < n; ++idx) {
A[idx] = (1LL * A[idx - 1] * idx) % n;
B[idx] = (1LL * B[idx - 1] * idx) % n;
C[idx] = (1LL * C[idx - 1] * idx) % n;
}
for (int idx = n - 1; idx >= 1; --idx) {
int st = min(A[idx], B[idx]);
int dr = max(A[idx], B[idx]);
int color = C[idx];
nxt[idx] = dr + 1;
for(int id = st; id <= dr; ++id)
if (ans[id].idx == 0) {
ans[id].color = color;
ans[id].idx = idx;
}
else id = nxt[ans[id].idx];
}
for (int idx = 1; idx < n; ++idx)
fout << ans[idx].color << '\n';
}