Pagini recente » Cod sursa (job #2775336) | Cod sursa (job #2648597) | Cod sursa (job #1178015) | Cod sursa (job #1971035) | Cod sursa (job #2721925)
#include <bits/stdc++.h>
#define MaxN 1000005
#define MAXN 1000005
std::ifstream InFile("curcubeu.in");
int N, A[MaxN], B[MaxN], C[MaxN],
Next[MaxN], Color[MaxN];
bool Seen[MaxN];
std::vector <int> begin[MAXN];
std::vector <int> end[MAXN];
void Citire() {
InFile >> N >> A[1] >> B[1] >> C[1];
for (int i=1; i<N-1; ++i) {
A[i+1] = (1LL*A[i]*(i+1)) % N,
B[i+1] = (1LL*B[i]*(i+1)) % N,
C[i+1] = (1LL*C[i]*(i+1)) % N;
}
}
void Rezolvare() {
for (int i=1; i<=N-1; ++i) {
begin[A[i]].push_back(i);
end[B[i]].push_back(i);
}
freopen("curcubeu.out", "w", stdout);
std::multiset <int> multiset;
for (int i=0; i<=N-1; ++i) {
for (auto &it:begin[i]) {
multiset.insert(-it);
}
if (!multiset.empty())
Color[i] = C[-*multiset.begin()];
for (auto &it:end[i]) {
multiset.erase(-it);
}
}
for (int i=0; i<N-1; ++i)
printf("%d\n", Color[i+1]);
}
int main() {
Citire();
Rezolvare();
return 0;
}