Pagini recente » Cod sursa (job #2882761) | Cod sursa (job #1162628) | Cod sursa (job #2416248) | Cod sursa (job #2883236) | Cod sursa (job #2567725)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000005;
ifstream fin( "curcubeu.in" );
ofstream fout( "curcubeu.out" );
int N;
struct mzg {
int L, R;
int c;
} a[NMAX];
int jump[NMAX];
int color[NMAX];
void Read() { /// SE CITESTE DATELE
fin >> N >> a[1].L >> a[1].R >> a[1].c;
for( int i = 2; i < N; ++i ) {
a[i].L = ( 1LL * a[i - 1].L * i ) % N;
a[i].R = ( 1LL * a[i - 1].R * i ) % N;
a[i].c = ( 1LL * a[i - 1].c * i ) % N;
if( a[i].L > a[i].R ) swap( a[i].L, a[i].R );
}
}
void Do()
{
for( int i = N - 1; i > 0; --i ) {
int lf = a[i].L, rg = a[i].R;
jump[i] = rg;
for( int j = lf; j <= rg; ++j ) {
if( color[j] != 0 ) { j = jump[ color[j] ]; continue; }
color[j] = i;
}
}
for( int i = 1; i < N; ++i )
fout << a[color[i]].c << '\n';
}
int main()
{
Read();
Do();
return 0;
}