Pagini recente » Cod sursa (job #2069218) | Cod sursa (job #2713406) | Cod sursa (job #1641635) | Cod sursa (job #1433992) | Cod sursa (job #1395059)
#include <iostream>
#include <cstdio>
#define nmax 3000009
using namespace std;
int n,a,b,c;
struct Coord{
int x,y,c;
};
Coord d[nmax];
int urm[nmax],cul[nmax];
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);
d[1].x=min(a,b);d[1].y=max(a,b);d[1].c=c;
for(i=2;i<n;i++){
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
d[i].x=min(a,b);d[i].y=max(a,b);d[i].c=c;
}
// for(i=1;i<n;i++)
// cout<<d[i].x<<' '<<d[i].y<<' '<<d[i].c<<'\n';
// cout<<'\n';
for(i=n-1;i>0;i--){
st=d[i].x;
dr=d[i].y;
g=d[i].c;
for(j=st;j<=dr&&j<n;j+=urm[j]+1) if(!cul[j])cul[j]=g;
urm[st]=max(urm[st],dr-st);
}
for(i=1;i<n;i++)
cout<<cul[i]<<'\n';
return 0;
}