Pagini recente » Cod sursa (job #1407233) | Cod sursa (job #955623) | Cod sursa (job #2149835) | Cod sursa (job #2548998) | Cod sursa (job #2081501)
#include <cstdio>
#include <algorithm>
using namespace std;
int tata[1000001],cul[1000001],n;
struct aa{int a;int b;int c;};
int fnd(int a)
{
if(a!=tata[a])
a=fnd(tata[a]);
return tata[a];
}
aa v[1000002];
void color(int k)
{
int i,a,b,x;
a=v[k].a,b=v[k].b;
for(i=a;i<=b;i++)
{
if(cul[i]==0)
cul[i]=k;
if(cul[i]!=0)
{
x=cul[i];
x=fnd(x);
if(v[x].b>v[x].a)
i=v[x].b;
else i=v[x].a;
tata[x]=k;
v[k].b=max(v[k].b,v[x].b);
}
}
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int a,b,c,i;
scanf("%d%d%d%d",&n,&a,&b,&c);
v[1].a=a;
v[1].b=b;
v[1].c=c;
tata[1]=1;
tata[n]=n;
for(i=2;i<=n-1;i++)
{
tata[i]=i;
v[i].a=min(v[i-1].a*i%n,v[i-1].b*i%n);
v[i].b=max(v[i-1].a*i%n,v[i-1].b*i%n);
v[i].c=v[i-1].c*i%n;
}
for(i=n-1;i>=1;i--)
color(i);
for(i=1;i<=n-1;i++)
printf("%d\n",v[cul[i]].c);
return 0;
}