Pagini recente » Cod sursa (job #1326526) | Cod sursa (job #1680101) | Cod sursa (job #1478411) | Cod sursa (job #1523763) | Cod sursa (job #961169)
Cod sursa(job #961169)
#include<cstdio>
#include<algorithm>
using namespace std ;
#define maxn 1000010
int n ;
int a[maxn], b[maxn], c[maxn] ;
int sol[maxn], unde[maxn] ;
int main()
{
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
scanf("%d%d%d%d", &n, &a[1], &b[1], &c[1]);
if( a[1] > b[1] )
swap( a[1], b[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 ;
if( a[i] > b[i] )
swap( a[i], b[i] ) ;
}
for(int i = n - 1; i >= 1; --i )
{
int j = a[i] ;
while( j <= b[i] )
{
if( sol[j] == 0 )
{
sol[j] = c[i] ;
unde[j] = b[i] + 1 ;
++j ;
}
else
j = unde[j] ;
}
}
for(int i = 1; i < n; ++i )
printf("%d\n", sol[i]);
return 0 ;
}