Pagini recente » Cod sursa (job #2175755) | Cod sursa (job #2830952) | Cod sursa (job #2998919) | Cod sursa (job #2071933) | Cod sursa (job #2178796)
#pragma GCC optimize("03")
#include <bits/stdc++.h>
#define N 1000100
#define ll long long
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
int n, a, b, c, L[N], R[N], C[N], sol[N], nxt[N], viz[N];
int update(int p){
return (!viz[p] ? p : nxt[p] = update(nxt[p]));
}
int main(){
in >> n >> a >> b >> c;
for(int i = 1; i <= n; i++){
if(i > 1){
a = ((ll)a * (ll)i) % n;
b = ((ll)b * (ll)i) % n;
c = ((ll)c * (ll)i) % n;
}
L[i] = max(1, min(a, b));
R[i] = max(a, b);
C[i] = c;
nxt[i] = i + 1;
}
for(int i = n - 1; i > 0; i--){
for(int p = L[i]; p <= R[i]; p = nxt[p]){
if(!viz[p]){
sol[p] = C[i];
viz[p] = 1;
}
}
update(L[i]);
}
for(int i = 1; i < n; i++)
out << sol[i] << '\n';
return 0;
}