Pagini recente » Cod sursa (job #2040515) | Cod sursa (job #2090958) | Cod sursa (job #2978780) | Cod sursa (job #607964) | Cod sursa (job #914387)
Cod sursa(job #914387)
#include <stdio.h>
#define nmax 1000005
struct element{long long a, b, c;};
long i, n, inc, sf, aux, poz, purm;
long urm[nmax], cul[nmax];
element v[nmax];
void citire()
{
scanf("%ld %ld %ld %ld",&n,&v[1].a,&v[1].b,&v[1].c);
urm[1]=2;
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;
urm[i]=i+1;
}
}
void rezolvare()
{
for (i=n-1;i>=1;i--)
{
inc=v[i].a; sf=v[i].b;
if (inc>sf)
{ aux=inc; inc=sf; sf=aux; }
poz=inc;
while (poz<=sf)
{
purm=urm[poz];
if (urm[poz]<sf+1)
urm[poz]=sf+1;
if (cul[poz]==0)
cul[poz]=v[i].c;
poz=purm;
}
}
}
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
citire();
rezolvare();
for (i=1;i<=n-1;i++)
printf("%ld\n",cul[i]);
return 0;
}