Pagini recente » Cod sursa (job #2936175) | Cod sursa (job #1360238) | Cod sursa (job #1919928) | Cod sursa (job #2925530) | Cod sursa (job #1665330)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int NMAX = 1000006;
int next[NMAX],A[NMAX],B[NMAX],C[NMAX],N,a,b,c,sol[NMAX];
void color(int poz)
{
if(poz > b)
return;
if(!sol[poz]){
sol[poz] = c;
next[poz] = next[b+1];
color(poz + 1);
}
else
color(next[poz]);
}
int main()
{
in>>N>>a>>b>>c;
A[1] = a;
B[1] = b;
C[1] = c;
for(int i = 2 ; i < N ; ++i){
A[i] = (A[i-1] * i)%N;
B[i] = (B[i-1] * i)%N;
C[i] = (C[i-1] * i)%N;
next[i] = i;
}
for(int i = N - 1 ; i >= 1 ; --i){
a = min(A[i],B[i]);
b = max(A[i],B[i]);
c = C[i];
color(a);
}
for(int i = 1 ; i < N ; ++i)
out<<sol[i]<<"\n";
}