Pagini recente » Diferente pentru runda/preoji2014 intre reviziile 2 si 5 | Istoria paginii utilizator/gabriela.r | Cod sursa (job #1298984) | Cod sursa (job #1553840) | Cod sursa (job #185864)
Cod sursa(job #185864)
#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]=(a[i-1]*i)%n;
b[i]=(b[i-1]*i)%n;
c[i]=(c[i-1]*i)%n;
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];
j=d[j];
d[j-1]=b[i]+1;
}
}
for (i=1; i<=n-1; i++) printf("%d\n",v[i]);
return 0;
}