Cod sursa(job #2269533)

Utilizator mpavel77Pavel Mihai mpavel77 Data 26 octombrie 2018 09:52:39
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

#define DIM 1000010

using namespace std;



ifstream fin ("curcubeu.in");

ofstream fout ("curcubeu.out");

int n,a,b,c,A,B,C,i,j,st,dr;

pair < pair<int,int>, int > v[DIM];

int cul[DIM],w[DIM];

int main (){



    fin>>n>>a>>b>>c;

    v[1] = make_pair(make_pair( min(a,b),max(a,b) ),c);

    for (i=2;i<=n-1;i++){

        A = (1LL*a*i) % n;

        B = (1LL*b*i) % n;

        C = (1LL*c*i) % n;



        v[i] = make_pair(make_pair( min(A,B),max(A,B) ),C);



        a = A, b = B, c = C;



    }



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



        st = v[i].first.first;

        dr = v[i].first.second;



        j = st;

        while (j <= dr){



            if (w[j] == 0){

                w[j] = dr; /// intervalul de la j la dr este colorat complet

                cul[j] = v[i].second;

                j++;

            } else {

                j = w[j] + 1;

            }



        }





    }



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

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



    return 0;

}