Pagini recente » Cod sursa (job #2437697) | Cod sursa (job #1182879) | Cod sursa (job #2642231) | Cod sursa (job #1079319) | Cod sursa (job #1712390)
#include <cstdio>
using namespace std;
const int Nmax=1000005;
struct Gard
{
int a,b,c;
} d[Nmax];
struct Poz
{
int color,next;
} v[Nmax];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int n,a,b,c,i,urm;
scanf("%d%d%d%d",&n,&d[1].a,&d[1].b,&d[1].c);
for(i=2;i<n;i++)
{
d[i].a=( (long long) d[i-1].a * i ) % n;
d[i].b=( (long long) d[i-1].b * i ) % n;
d[i].c=( (long long) d[i-1].c * i ) % n;
}
for(i=n-1;i>=1;i--)
{
a=d[i].a;
b=d[i].b;
c=d[i].c;
while(a<=b)
{
if(v[a].color==0)
{
v[a].color=c;
v[a].next=b;
a++;
}
else
{
urm=v[a].next+1;
if(v[a].next<b) v[a].next=b;
a=urm;
}
}
}
for(i=1;i<=n-1;i++) printf("%d\n",v[i].color);
return 0;
}