Pagini recente » Cod sursa (job #3153883) | Cod sursa (job #397354) | Cod sursa (job #175957) | Cod sursa (job #2281680) | Cod sursa (job #1395069)
#include <cstdio>
#define nmax 1000009
using namespace std;
int n,a,b,c;
int A[nmax],B[nmax],C[nmax];
int urm[nmax],cul[nmax];
inline int maxx(int a,int b){
if(a < b) return b;
return a;
}
inline int minn(int a,int b){
if(b < a) return b;
return a;
}
int main(){
int i,j,st,dr,g;
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&n,&a,&b,&c);
A[1]=minn(a,b);B[1]=maxx(a,b);C[1]=c;
for(i=2;i<n;i++){
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
A[i]=minn(a,b);B[i]=maxx(a,b);C[i]=c;
}
for(i=n-1;i>0;i--){
st=A[i];
dr=B[i];
g=C[i];
for(j=st;j<=dr&&j<n;j+=urm[j]+1) cul[j]=g;
urm[st]=dr-st;
}
for(i=1;i<n;i++)
printf("%d\n",cul[i]);
return 0;
}