Pagini recente » Cod sursa (job #3138725) | Cod sursa (job #1828889) | Cod sursa (job #2540084) | Cod sursa (job #1150848) | Cod sursa (job #1523307)
#include <cstdio>
#include <algorithm>
using namespace std;
const int nmax = 1000005;
int n, a[nmax], b[nmax], c[nmax], col[nmax], nxt[nmax];
int main()
{
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
int i, j;
scanf("%d %d %d %d", &n, &a[1], &b[1], &c[1]);
if(a[1] > b[1]) swap(a[1], b[1]);
for(i=2; i<n; i++)
{
a[i]=(a[i-1]*1LL*i)%n;
b[i]=(b[i-1]*1LL*i)%n;
c[i]=(c[i-1]*1LL*i)%n;
if(a[i] > b[i]) swap(a[i], b[i]);
}
for(i=n-1; i; i--)
for(j=a[i]; j<=b[i]; )
{
if(col[j]) j=nxt[col[j]]+1;
else
{
col[j]=c[i];
nxt[col[j]]=j;
j++;
}
}
for(i=1; i<n; i++)
printf("%d\n", col[i]);
fclose(stdin);
fclose(stdout);
return 0;
}