Pagini recente » Cod sursa (job #1506563) | Cod sursa (job #2493969) | Cod sursa (job #1103345) | Cod sursa (job #834714) | Cod sursa (job #1395091)
#include <cstdio>
#include <iostream>
#define nmax 1000009
using namespace std;
int n;
int A[nmax],B[nmax],C[nmax];
int urm[nmax],cul[nmax];
int main(){
int i,j,st,dr,g,s;
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&n,&A[1],&B[1],&C[1]);
for(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(i=n-1;i>0;i--){
st=min(A[i],B[i]);
dr=max(A[i],B[i]);
g=C[i];
for(j=st;j<=dr;j++){
s=urm[j];
urm[j]=max(urm[j],dr-j);
if(!cul[j])
cul[j]=g;
j+=s;
}
urm[st]=max(urm[st],dr-st);
}
for(i=1;i<n;i++)
printf("%d\n",cul[i]);
return 0;
}