Pagini recente » Cod sursa (job #948635) | Cod sursa (job #2713945) | Photo | Cod sursa (job #41565) | Cod sursa (job #2922852)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
const int MAX_N = 1000005;
struct Query {
int a, b, c;
};
int n;
Query queries[MAX_N];
int ans[MAX_N];
int idx[MAX_N];
int limit[MAX_N];
int main() {
int a, b, c;
fin >> n >> a >> b >> c;
queries[0] = {min(a, b) - 1, max(a, b) - 1, c};
for (int i = 2; i < n; i++) {
a = (1ll * a * i) % n;
b = (1ll * b * i) % n;
c = (1ll * c * i) % n;
queries[i - 1] = {min(a, b) - 1, max(a, b) - 1, c};
}
for (int i = n - 2; i >= 0; i--) {
int currA = queries[i].a;
int currB = queries[i].b;
int currC = queries[i].c;
for (int j = currA; j <= currB; j++) {
if (ans[j] != 0) {
j = limit[j];
continue;
}
ans[j] = currC;
limit[j] = currB;
}
}
for (int i = 0; i < n - 1; i++) {
fout << ans[i] << '\n';
}
}