Cod sursa(job #1712384)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 2 iunie 2016 19:29:29
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

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;

    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;
    }

    for(i=n-1;i>=1;i--)
    {
        a=d[i].a;
        b=d[i].b;
        c=d[i].c;

        while(a<=b)
        {
            v[a].next=b;

            if(v[a].color==0)
            {
                v[a].color=c;
                a++;
            }
            else a=b+1;
        }
    }

    for(i=1;i<=n-1;i++) printf("%d\n",v[i].color);

    return 0;
}