Pagini recente » Cod sursa (job #29839) | Cod sursa (job #990462) | Cod sursa (job #2547512) | Cod sursa (job #2110881) | Cod sursa (job #1518192)
#include <bits/stdc++.h>
using namespace std;
int h[6000500];
int l, r, val, n;
void update(int node, int st, int dr) {
if(node >= n)
return ;
if(l <= st && dr <= r) {
h[node] = val;
return ;
}
int m = (dr - st) / 2 + st;
int mode = node << 1;
if(h[node]) {
if(mode + 1 < n)
h[mode + 1] = h[node];
if(mode < n)
h[mode] = h[node];
h[node] = 0;
}
if(l <= m) update(mode, st, m);
if(r > m) update(mode + 1, m + 1, dr);
}
FILE *g = fopen("curcubeu.out", "w");
void afis(int node, int st, int dr) {
if(h[node]) {
for(int i = st; i <= dr; i ++)
fprintf(g, "%d\n", h[node]);
return ;
}
int m = (dr - st) / 2 + st;
afis(node * 2, st, m);
afis(node * 2 + 1, m + 1, dr);
}
int main()
{
freopen("curcubeu.in", "r", stdin);
int a, b, c;
cin >> n >> a >> b >> c;
for(int i = 2; i <= n; i ++) {
l = min(a, b); r = max(a, b); val = c;
update(1, 1, n -1);
a = (a * i) % n;
b = (b * i) % n;
c = (c * i) % n;
}
afis(1, 1, n - 1);
return 0;
}