Pagini recente » Cod sursa (job #1142826) | Monitorul de evaluare | Cod sursa (job #2463260) | Cod sursa (job #308472) | Cod sursa (job #2567791)
#include <bits/stdc++.h>
#define Nmax 1000001
using namespace std;
ifstream fin ("curcubeu.in");
ofstream fout ("curcubeu.out");
int a[ Nmax ], b[ Nmax ], c[ Nmax ], n, A, B, C, nex[ Nmax ],co[Nmax];
void precalc ( )
{
int i ;
for(int i = 2; i<n; ++i)
{
a[i] = (1LL*a[i-1]*i)%n;
b[i] = (1LL*b[i-1]*i)%n;
c[i] = (1LL*c[i-1]*i)%n;
}
}
int main()
{
fin>> n >> a[1] >> b[1] >> c[1] ;
precalc();
int i, j ;
for ( i = n - 1 ; i >= 1 ; i -- )
{
for( j = min ( b[i], a[ i ] ) ; j<= max (b[i], a[ i ] ) ; j ++ )
{
if( co [ j ] == 0 )
{
co[ j ] = i ;
}
else
j = nex [ co [ j ] ] ;
}
nex[ i ] = max( a[ i ], b[ i ] ) ;
}
for( i = 1 ; i <= n - 1 ; i ++)
fout<<c[ co [ i ] ]<<"\n";
return 0;
}