Pagini recente » Cod sursa (job #2117381) | Cod sursa (job #2594095) | Cod sursa (job #1240777) | Cod sursa (job #2907335) | Cod sursa (job #809001)
Cod sursa(job #809001)
#include<stdio.h>
#define nmax 1000005
struct element{long inc, sf, c;};
long long i, n, a, b, c, urm[nmax], aux, urmtot, poz, cul[nmax];
element v[nmax];
void citire()
{
for (i=1;i<=n-1;i++)
{
v[i].inc=a; v[i].sf=b;
if (v[i].inc>v[i].sf)
{ v[i].inc=b; v[i].sf=a; }
v[i].c=c;
a=a*(i+1)%n; b=b*(i+1)%n; c=c*(i+1)%n;
}
}
void rezolvare()
{
for (i=n-1;i>=1;i--)
{
poz=v[i].inc;
while (poz<=v[i].sf)
{
if (cul[poz]==0)
cul[poz]=v[i].c;
poz=urm[poz];
}
urmtot=poz;
poz=v[i].inc;
while (poz<=v[i].sf)
{
aux=urm[poz];
urm[poz]=urmtot;
poz=aux;
}
}
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%ld %ld %ld %ld",&n,&a,&b,&c);
citire();
for (i=1;i<=n;i++)
urm[i]=i+1;
rezolvare();
for (i=1;i<=n-1;i++)
printf("%ld\n",cul[i]);
return 0;
}