Pagini recente » Cod sursa (job #2710142) | Cod sursa (job #351912) | Cod sursa (job #1634019) | Cod sursa (job #2641273) | Cod sursa (job #235691)
Cod sursa(job #235691)
#include<stdio.h>
#define NMAX 1000001
int A[NMAX],B[NMAX],C[NMAX],S[NMAX],F[NMAX];
inline int min(int a,int b)
{
return a<b?a:b;
}
inline int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int N;
scanf("%d",&N);
scanf("%d%d%d",&A[1],&B[1],&C[1]);
int i;
for(i=2; i<N; ++i)
{
A[i]=(A[i-1]*i)%N;
B[i]=(B[i-1]*i)%N;
C[i]=(C[i-1]*i)%N;
}
int begin,end;
for(i=N-1; i; --i)
{
begin=min(A[i],B[i]);
end=max(A[i],B[i]);
while( begin<=end )
{
if( !S[ begin ] )
{
F[begin]=end+1;
S[begin++]=C[i];
}
else
begin=F[begin];
}
}
for(i=1; i<N; ++i)
printf("%d\n",S[i]);
return 0;
}