Pagini recente » Cod sursa (job #315233) | Cod sursa (job #2326049) | Cod sursa (job #2612470) | Cod sursa (job #222459) | Cod sursa (job #1712394)
#include <cstdio>
#include <algorithm>
using namespace std;
const int Nmax=1000005;
struct Gard
{
int a,b,c;
} d[Nmax];
struct Poz
{
int color,next;
} v[Nmax];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int n,a,b,c,i,urm;
scanf("%d%d%d%d",&n,&d[1].a,&d[1].b,&d[1].c);
for(i=2;i<n;i++)
{
d[i].a=( (long long) d[i-1].a * i ) % n;
d[i].b=( (long long) d[i-1].b * i ) % n;
d[i].c=( (long long) d[i-1].c * i ) % n;
if( d[i].a > d[i].b) swap(d[i].a,d[i].b);
}
for(i=n-1;i>=1;i--)
{
a=d[i].a;
b=d[i].b;
c=d[i].c;
while(a<=b)
{
if(v[a].color==0)
{
v[a].color=c;
v[a].next=b;
a++;
}
else
{
urm=v[a].next+1;
if(v[a].next<b) v[a].next=b;
a=urm;
}
}
}
for(i=1;i<=n-1;i++) printf("%d\n",v[i].color);
return 0;
}