Pagini recente » Cod sursa (job #561060) | Cod sursa (job #1067300) | Cod sursa (job #3293360) | Cod sursa (job #2189876) | Cod sursa (job #1829884)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
const int maxn = 1e6 + 5;
int A[maxn], B[maxn], C[maxn], Color[maxn], Next[maxn];
int main() {
ios_base :: sync_with_stdio (false);
int n, i, j;
fin >> n >> A[1] >> B[1] >> C[1];
if (A[1] > B[1]) {
swap(A[1], B[1]);
}
for (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;
if (A[i] > B[i]) {
swap(A[i], B[i]);
}
}
for (i = n - 1; i; i--) {
j = A[i];
while(j <= B[i]) {
if (Color[j]) {
j = Next[Color[j]] + 1;
} else {
Color[j] = C[i];
Next[Color[j]] = j;
j++;
}
}
}
for (i = 1; i < n; i++) {
fout << Color[i] << "\n";
}
fin.close();
fout.close();
return 0;
}