Pagini recente » Cod sursa (job #779731) | Cod sursa (job #1853105) | Cod sursa (job #1255517) | Cod sursa (job #1577459) | Cod sursa (job #2567749)
#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 >= 0; --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;
}