Pagini recente » Istoria paginii runda/oni.test-2010_runda2 | Istoria paginii utilizator/ursawarlord | Statistici Nastasa Petru-Alexandru (piscotel29) | Istoria paginii utilizator/bombonikdulcik | Cod sursa (job #185869)
Cod sursa(job #185869)
#include <stdio.h>
#define maxl 1000010
int i,j,k,n;
int a[maxl],b[maxl],c[maxl],d[maxl],v[maxl];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d %d %d %d",&n,&a[1],&b[1],&c[1]);
for (i=1; i<=n-1; i++) d[i]=i+1;
for (i=2; i<=n-1; i++)
{
a[i]=(1LL*a[i-1]*i)%n;
b[i]=(1LL*b[i-1]*i)%n;
c[i]=(1LL*c[i-1]*i)%n;
}
for (i=2; i<=n-1; i++)
if (a[i]>b[i])
{
k=a[i];
a[i]=b[i];
b[i]=k;
}
for (i=n-1; i>=1; i--)
{
j=a[i];
while (j<=b[i])
{
if (v[j]==0) v[j]=c[i];
k=j;
j=d[j];
d[k]=b[i]+1;
}
}
for (i=1; i<=n-1; i++) printf("%d\n",v[i]);
return 0;
}