Pagini recente » Cod sursa (job #2175328) | Cod sursa (job #3204162) | Cod sursa (job #2502914) | Cod sursa (job #2465976) | Cod sursa (job #3191814)
#include <bits/stdc++.h>
using namespace std;
string file = "curcubeu";
ifstream fin(file + ".in");
ofstream fout(file + ".out");
int *t;
int n, A, B, C;
void update(int x, int y, int val, int i = 1, int l = 1, int r = n) {
if (y < l || r < x)
return;
int m = (l + r) >> 1;
int aux = (i << 1);
if (t[i]) {
if (l != r) {
t[aux] = t[aux + 1] = t[i];
t[i] = 0;
}
}
if (x <= l && r <= y) {
t[i] = val;
return;
}
update(x, y, val, aux, l, m);
update(x, y, val, aux + 1, m + 1, r);
}
void display(int i = 1, int l = 1, int r = n) {
if (l == r) {
fout << t[i] << '\n';
return;
}
int m = (l + r) >> 1;
int aux = (i << 1);
if (t[i]) {
t[aux] = t[aux + 1] = t[i];
t[i] = 0;
}
display(aux, l, m);
display(aux + 1, m + 1, r);
}
int main(){
t = new int[3000001]();
fin >> n >> A >> B >> C;
n--;
for (int i = 1; i <= n; i++) {
if (A <= B)
update(A, B, C);
else
update(B, A, C);
int A2, B2, C2;
A2 = (1LL * (i + 1) * A) % (n + 1);
B2 = (1LL * (i + 1) * B) % (n + 1);
C2 = (1LL * (i + 1) * C) % (n + 1);
A = A2;
B = B2;
C = C2;
}
display();
return 0;
}