Pagini recente » Cod sursa (job #492207) | Cod sursa (job #1812554) | Cod sursa (job #370908) | Cod sursa (job #2406520) | Cod sursa (job #419797)
Cod sursa(job #419797)
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn = 1000005;
int i , j , k , right[maxn] , col[maxn] , pr[maxn] , cl;
int n , A , B, C , lf , rt , last;
void print (int lf , int cl) {
for( i = lf ; i <= right[lf] ; ++i ) {
if ( pr[i] > pr[lf]) print( i , col[i]);
printf("%d\n",cl);
}
--i;
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d %d %d %d",&n,&A,&B,&C);
right[min(A,B)] = max(A,B) , col[min(A,B)] = C , pr[min(A,B)] = 1;
for ( i = 2 ; i < n ; ++i ) {
A = ( A * i ) % n , B = ( B * i ) % n , C = ( C * i ) % n ;
lf = min ( A , B ) , rt = max ( A , B );
right[lf] = rt;
col[lf] = C;
pr[lf] = i;
}
if ( right[1] == 0 ) right[1] = n - 1;
for (i = 1 ; i < n ;++i )
print(i , col[i]);
return 0;
}