Pagini recente » Cod sursa (job #215812) | Cod sursa (job #1484952) | Cod sursa (job #801430) | Cod sursa (job #2631692) | Cod sursa (job #715214)
Cod sursa(job #715214)
#include <stdio.h>
#define Nmax 1000000+2
#define LL long long
int A[Nmax],B[Nmax],C[Nmax],Urm[Nmax],Cul[Nmax];
int N;
int main(){
int i,j,jj,aux,lcul;
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&N,&A[1],&B[1],&C[1]);
Urm[1]=1;
for(i=2;i<N;++i){
// scanf("%d%d%d",&A[i],&B[i],&C[i]);
A[i]=((LL)A[i-1]*i)%N;
B[i]=((LL)B[i-1]*i)%N;
if( A[i] > B[i] ) aux=A[i],A[i]=B[i],B[i]=aux;
C[i]=((LL)C[i-1]*i)%N;
Urm[i]=i;
}
for(i=N-1;i>=1;--i){
lcul=B[i]+1;
while( Urm[lcul]>lcul ) lcul=Urm[lcul];
for(j=A[i]; j<=B[i]; ++j ){
while( Urm[j]>j )j=Urm[j];
if( j>B[i] ) break;
Cul[j]=C[i];
Urm[j]=lcul;
}
}
for(i=1;i<N;++i) printf("%d\n",Cul[i]);
fclose(stdin); fclose(stdout);
return 0;
}