Pagini recente » Cod sursa (job #2029394) | Cod sursa (job #2280432) | Cod sursa (job #2572099) | Cod sursa (job #2217917) | Cod sursa (job #197955)
Cod sursa(job #197955)
#include <cstdio>
using namespace std;
long n,i,j,a[1000100],b[1000100],c[1000100],p[1000100],x[1000100],l,u,t;
long long tt;
int main(){
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&n,&a[1],&b[1],&c[1]);
//printf("%d %d %d\n",a[1],b[1],c[1]);
p[1]=2;
for (i=2;i<n;i++)
{
tt=a[i-1];
tt*=i;
a[i]=tt%n;
tt=b[i-1];
tt*=i;
b[i]=tt%n;
tt=c[i-1];
tt*=i;
c[i]=tt%n;
p[i]=i+1;
}
for (i=1;i<n;i++)
if (a[i]>b[i])
{
l=a[i];a[i]=b[i];b[i]=l;
}
for (i=n-1;i>=1;i--)
{
l=a[i];
u=b[i];
j=l;
while (j<=u)
{
if (x[j]==0)
x[j]=c[i];
t=j;
j=p[j];
p[t]=u+1;
}
}
for (i=1;i<n;i++)
printf("%d\n",x[i]);
return 0;
}