Pagini recente » Cod sursa (job #145834) | Cod sursa (job #3218359) | Cod sursa (job #618753) | Cod sursa (job #860254) | Cod sursa (job #1518277)
#include <bits/stdc++.h>
using namespace std;
int h[15000005];
long long l, r, val;
void update(long long node, int st, int dr) {
if(l <= st && dr <= r) {
h[node] = val;
return ;
}
int m = (dr - st) / 2 + st;
if(h[node])
h[(node << 1) + 1] = h[node << 1] = h[node], h[node] = 0;
if(l <= m) update(node << 1, st, m);
if(r > m) update((node << 1) + 1, m + 1, dr);
}
FILE *g = fopen("curcubeu.out", "w");
void afis(long long 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 << 1, st, m);
afis((node << 1) + 1, m + 1, dr);
}
int main()
{
freopen("curcubeu.in", "r", stdin);
long long n, a, b;
cin >> n >> a >> b >> val;
for(int i = 2; i <= n; i ++) {
l = min(a, b); r = max(a, b);
update(1, 1, n - 1);
a = (a * i) % n;
b = (b * i) % n;
val = (val * i) % n;
}
afis(1, 1, n - 1);
return 0;
}