Pagini recente » Cod sursa (job #2282862) | Cod sursa (job #1045243) | Cod sursa (job #2418420) | Cod sursa (job #3031137) | Cod sursa (job #2567715)
#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;
}
}
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;
}