Pagini recente » Cod sursa (job #68849) | Cod sursa (job #2088334) | Cod sursa (job #764211) | Cod sursa (job #1290758) | Cod sursa (job #86021)
Cod sursa(job #86021)
#include<stdio.h>
long int i,j,v[1000000][4],w[1000000],k[1000000],n,m,f,aux,a,b;
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%ld",&n);
scanf("%ld %ld %ld",&v[1][1],&v[1][2],&v[1][3]);
for(i=2;i<n;i++)
{
v[i][1]=(v[i-1][1]*i)%n;
v[i][2]=(v[i-1][2]*i)%n;
v[i][3]=(v[i-1][3]*i)%n;
if(v[i][1]<v[i][2])
{
long int aux;
aux=v[i][1];
v[i][1]=v[i][2];
v[i][2]=aux;
}
}
for(i=1;i<n;i++)
{
m++;
w[m]=v[i][1];
m++;
w[m]=v[i][2];
}
f=m;
for(i=1;i<m;i++)
for(j=i+1;j<=m;j++)
if(w[i]==w[j]&&w[j]!=1000003)
{
w[j]=1000003;
f--;
}
for(i=1;i<m;i++)
for(j=i+1;j<=m;j++)
if(w[i]>w[j])
{
aux=w[j];
w[j]=w[i];
w[i]=aux;
}
m=f;
for(i=1;i<=n;i++)
{
for(a=0;a<=m;a++)
if(v[i][1]==w[a])
break;
for(b=0;b<=m;b++)
if(v[i][2]==w[b])
break;
for(j=a;j<=b;j++)
k[j]=v[i][3];
}
if(w[1]!=1)
{
for(i=1;i<w[1];i++)
printf("0\n");
}
w[m+1]=w[m]+1;
for(i=1;i<=m;i++)
for(j=w[i];j<w[i+1];j++)
if(w[i]!=0)
printf("%ld\n",k[i]);
return 0;
}