Pagini recente » Cod sursa (job #2899451) | Cod sursa (job #2855005) | Cod sursa (job #2803845) | Cod sursa (job #1610001) | Cod sursa (job #2147678)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, a, b, c, curc, curt;
int A[2097200];
void update(int nod, int st, int dr){
if (st >= a && dr <=b){
A[nod] = c;
return;
}
int mid = (st + dr)/2;
if (a <= mid) update(2*nod, st, mid);
if (b > mid) update(2*nod + 1, mid+1, dr);
}
int query(int nod, int st, int dr){
if (st == dr) return A[nod];
int mid = (st + dr)/2, son;
if (c <= mid) son = query(2*nod, st, mid);
else son = query(2*nod+1, mid+1, dr);
if (!son && A[nod]) son = A[nod];
return son;
}
int main(){
ifstream cin ("curcubeu.in");
ofstream cout ("curcubeu.out");
cin >> n >> a >> b >> c;
if (b < a) swap(a,b);
update(1,1,n);
for (int i=2; i<n; i++){
a = (a * i)%n;
b = (b * i)%n;
c = (c * i)%n;
if (b < a) swap(a,b);
update(1,1,n);
}
for (int i=1; i<n; i++){
c = i;
cout << query(1,1,n) << "\n";
}
return 0;
}