Pagini recente » Cod sursa (job #1096323) | Cod sursa (job #2481481) | Cod sursa (job #426723) | Cod sursa (job #2065571) | Cod sursa (job #2567785)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000005;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
int N, A, B, C;
struct culoare
{
int s,d,c;
};
culoare V[NMAX];
culoare K;
int m[NMAX];
int sz[NMAX];
int D[NMAX];
int S[NMAX];
void Read(){
fin >> N >> A >> B >> C;
V[1].s = A;
V[1].d = B;
V[1].c = C;
for( int i = 2; i < N; ++i )
{
V[i].s = (1LL * V[i-1].s * i )%N;
V[i].d = (1LL * V[i-1].d * i )%N;
V[i].c = (1LL * V[i-1].c * i )%N;
if( V[i].s > V[i].d ) swap( V[i].s, V[i].d );
}
}
void Solve()
{
for( int i = N-1; i >= 1; --i )
{
int lf = V[i].s;
int rg = V[i].d;
int col = V[i].c;
for( int i = lf; i <= rg; ++i )
{
if( D[i] != 0 )
i = D[i];
else{
S[i] = col;
D[i] = rg;
}
}
}
for( int i = 1; i < N; ++i )
fout << S[i] << '\n';
}
int main()
{
Read();
Solve();
return 0;
}