Pagini recente » Cod sursa (job #2152512) | Cod sursa (job #409778) | Cod sursa (job #2538436) | Cod sursa (job #15339) | Cod sursa (job #1665334)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("curcubeu.in");
ofstream out("curcubeu.out");
const int NMAX = 1000006;
int nxt[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;
nxt[poz] = nxt[b+1];
color(poz + 1);
}
else
color(nxt[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;
nxt[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";
}