Pagini recente » Cod sursa (job #1183572) | Cod sursa (job #2732213) | Cod sursa (job #1090207) | Cod sursa (job #1594473) | Cod sursa (job #360488)
Cod sursa(job #360488)
#include <cstdio>
#define lm 1000010
int a[lm], b[lm], c[lm], t[lm], n, v[lm];
int find (int x)
{
int c, i;
for (i=x; t[i]>0; i=t[i]);
for (; t[x]>0;)
{
c=t[x];
t[x]=i;
x=c;
}
return i;
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d %d %d %d",&n, &a[1], &b[1], &c[1]);
int i,j,k;
for (i=2; i<n; i++)
{
a[i]=(a[i-1]*i)%n;
b[i]=(b[i-1]*i)%n;
if (a[i]>b[i])
{
j=a[i];
a[i]=b[i];
b[i]=j;
}
c[i]=(c[i-1]*i)%n;
}
for (j=n-1; j>0; j--)
{
i = find(a[j]);
for (; i<=b[j];)
{
v[i] = c[j];
k=i;
i=find(i+1);
t[k]=i;
}
}
for (i=1; i<n; i++)
printf("%d\n", v[i]);
}