Pagini recente » Cod sursa (job #1756864) | Cod sursa (job #2588664) | Cod sursa (job #2720344) | Cod sursa (job #2147913) | Cod sursa (job #3127763)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int main(){
//ios_base::sync_with_stdio(false);
//cin.tie(NULL);
int n;
fin >> n;
vector<int> a(n+10), b(n+10), c(n+10);
fin >> a[1] >> b[1] >> c[1];
if(b[1] < a[1]) swap(a[1], b[1]);
vector<int> right(n+10, 0);
right[1] = 2;
vector<int> v(n+10, 0);
for(int i = 2; i <= n-1; ++i){
a[i] = (a[i-1]*i)%n, b[i] = (b[i-1]*i)%n, c[i] = (c[i-1]*i)%n;
if(b[i] < a[i]) swap(a[i], b[i]);
right[i] = i+1;
}
int t;
for(int i = n-1; i >= 1; --i){
//cout << a[i] << " " << b[i] << " " << c[i] << "\n";
int j = a[i];
while(j <= b[i]){
if(!v[j]) v[j] = c[i];
t = right[j];
right[j] = b[i]+1;
j = t;
}
//for(int i = 1; i <= n-1; ++i)
// cout << v[i] << " ";
//cout << "\n";
}
for(int i = 1; i <= n-1; ++i)
fout << v[i] << "\n";
}