Cod sursa(job #176307)
#include<stdio.h>
int n, a, b, c, m[1000002], nr, x[1000002];
typedef struct
{
int a, b, c;
} culoare;
culoare v[1000002];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d",&n);
scanf("%d%d%d",&v[1].a,&v[1].b,&v[1].c);
int i, j;
nr = n - 1; m[1] = 1;
for (i = 2; i < n; i++)
{
v[i].a = (v[i - 1].a * i) % n;
v[i].b = (v[i - 1].b * i) % n;
v[i].c = (v[i - 1].c * i) % n;
m[i] = i;
}
for (i = n - 1; i >= 1; i--)
{
for (j = v[i].a; j <= v[i].b; j++)
{
if (!x[j]){ x[j] = v[i].c; nr--;}
if (!nr) break;
}
if (nr <= 0) break;
}
for (i = 1; i < n; i++) printf("%d\n",x[i]);
return 0;
}