Cod sursa(job #2612252)

Utilizator betybety bety bety Data 8 mai 2020 18:21:22
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>

#include <fstream>

using namespace std;

ifstream fin("curcubeu.in");

ofstream fout("curcubeu.out");



const int nmax=1000005;



int n,a0,b0,c0,af,bf,cf;



int cells[nmax],range[nmax];



struct r

{

    int x,y,colour;

}v[nmax];



void read()

{

    fin>>n>>a0>>b0>>c0;



    v[1]={min(a0,b0),max(a0,b0),c0};



    for(int i=2;i<n;i++)

    {

        af=(1LL*a0*i)%n;

        bf=(1LL*b0*i)%n;

        cf=(1LL*c0*i)%n;



        v[i]={min(af,bf),max(af,bf),cf};



        a0=af,b0=bf,c0=cf;

    }

}



void solve()

{

    for(int i=n-1;i>=1;i--)

    {

        int x=v[i].x,y=v[i].y;



        for(;x<=y;x++)

            if(!range[x])

            {

                range[x]=y;

                cells[x]=v[i].colour;

            }

            else

                x=range[x];

    }



    for(int i=1;i<n;i++)

        fout<<cells[i]<<"\n";

}



int main()

{

    read();

    solve();



    return 0;

}