Cod sursa(job #3192825)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 13 ianuarie 2024 12:04:20
Problema Curcubeu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
#define DIM 1000001
#define next eiohfueri
#define left ieufhirufh
#define right ehuifeurhf

using namespace std;

ifstream fin("curcubeu.in");

ofstream fout("curcubeu.out");

struct elem{

    int left, right, color;

};

elem Q[DIM];

int next[DIM], v[DIM];

int n, a, b, c, i, j;

int main(){

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

    Q[1].left = min(a, b);

    Q[1].right = max(a, b);

    Q[1].color = c;

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

        a = (a * i) % n;

        b = (b * i) % n;

        c = (c * i) % n;

        Q[i].left = min(a, b);

        Q[i].right = max(a, b);

        Q[i].color = c;

    }

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

        for(j=Q[i].left;j<=Q[i].right;j++)

            if(!next[j]){

                v[j] = Q[i].color;

                next[j] = Q[i].right;

            }

            else j = next[j];

    }

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

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

}