Pagini recente » Cod sursa (job #1673470) | Cod sursa (job #953535) | Cod sursa (job #251021) | Cod sursa (job #1065590) | Cod sursa (job #2925665)
#include <fstream>
using namespace std;
ifstream cin( "curcubeu.in" );
ofstream cout( "curcubeu.out" );
const int MAX = 1e6 + 10;
int nextt[ MAX ];
int rez[ MAX ];
int a[ MAX ];
int b[ MAX ];
int c[ MAX ];
int n;
int main()
{
cin >> n >> a[ 1 ] >> b[ 1 ] >> c[ 1 ];
for( int i = 2; i < n; i++ ) {
a[ i ] = ( (long long)a[ i - 1 ] * i ) % n;
b[ i ] = ( (long long)b[ i - 1 ] * i ) % n;
c[ i ] = ( (long long)c[ i - 1 ] * i ) % n;
}
for( int i = n - 1; i > 0; i-- ) {
int left = min( a[ i ], b[ i ] );
int right = max( a[ i ], b[ i ] );
for( int j = left; j <= right; j++ )
if( nextt[ j ] != 0 )
j = nextt[ j ];
else {
nextt[ j ] = right + 1;
rez[ j ] = c[ i ];
}
}
for( int i = 1; i < n; i++ )
cout << rez[ i ] << '\n';
return 0;
}