Pagini recente » Cod sursa (job #1211176) | nave-prea-usor | Cod sursa (job #1010169) | Cod sursa (job #1295198) | Cod sursa (job #1133462)
#include <cstdio>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream f("curcubeu.in");
ofstream g("curcubeu.out");
struct culori {
int x;
int y;
int cul;
} v[1000050];
int d[1000050],vec[1000050];
int tmp,i,j,n;
int main () {
/*freopen ("curcubeu.in","r",stdin);
freopen ("curcubeu.out","w",stdout);*/
f>>n>>v[1].x>>v[1].y>>v[1].cul;
//scanf ("%d%d%d%d",&n,&v[1].x,&v[1].y,&v[1].cul);
for (i=2;i<n;i++) {
v[i].x=int((1LL*v[i-1].x*i)%n);
v[i].y=int((1LL*v[i-1].y*i)%n);
v[i].cul=int((1LL*v[i-1].cul*i)%n);
}
for(i=1;i<=n;i++)
d[i]=i;
for (i=n-1;i>=1;i--) {
if (v[i].x>v[i].y) {
tmp=v[i].x;
v[i].x=v[i].y;
v[i].y=tmp;
}
for (j=v[i].x;j<=v[i].y;j++) {
if (vec[j]==0) {
d[j]=v[i].y+1;
vec[j]=v[i].cul;
}
else {
while (vec[j]!=0)
j=d[j];
if(d[j]<v[i].y)
d[j]=v[i].y+1;
j--;
}
}
}
for (i=1;i<n;i++)
//printf("%d\n",vec[i]);
g<<vec[i]<<"\n";
return 0;
}