Pagini recente » Cod sursa (job #1725328) | Cod sursa (job #1870054) | Cod sursa (job #1484117) | Cod sursa (job #2195814) | Cod sursa (job #1669448)
#include <bits/stdc++.h>
const int DIM = 1000010;
using namespace std;
int V[DIM], Next[DIM], A[DIM], B[DIM], C[DIM], N, p;
int main() {
FILE *input_file = fopen( "curcubeu.in" , "r" );
FILE *output_file = fopen( "curcubeu.out", "w" );
fscanf( input_file, "%d %d %d %d", &N, &A[1], &B[1], &C[1] );
for( int i = 2; i < N; i ++ ) {
A[i] = ( A[i - 1] * 1LL * i ) % N;
B[i] = ( B[i - 1] * 1LL * i ) % N;
C[i] = ( C[i - 1] * 1LL * i ) % N;
}
for( int i = 1; i < N; i ++ )
Next[i] = i + 1;
for( int i = N - 1; i >= 1; i -- ) {
if( A[i] > B[i] )
swap( A[i], B[i] );
Next[ A[i] - 1 ] = B[i] + 1;
for( int j = A[i]; j <= B[i]; ) {
while( V[j] != 0 )
j = Next[j];
if( j > B[i] )
break;
V[j] = C[i];
Next[j] = B[i] + 1;
j ++;
}
}
for( int i = 1; i < N; i ++ )
fprintf( output_file, "%d\n", V[i] );
return 0;
}