Cod sursa(job #3316532)

Utilizator adr_grIrina S adr_gr Data 19 octombrie 2025 08:31:41
Problema Curcubeu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    ifstream fin("curcubeu.in");
    ofstream fout("curcubeu.out");

    int N;
    int A, B, C;
    fin >> N >> A >> B >> C;

    vector<int> color(N, 0);         // culoarea fiecărei căsuțe (index 1..N-1)
    vector<int> last_update(N, 0);   // timpul ultimei actualizări

    for (int i = 1; i <= N - 1; ++i) {
        int l = min(A, B);
        int r = max(A, B);

        // validare căsuțe (sunt de la 1 la N-1)
        if (l == 0) l = 1;
        if (r >= N) r = N - 1;

        for (int j = l; j <= r; ++j) {
            if (last_update[j] < i) {
                color[j] = C;
                last_update[j] = i;
            }
        }

        // următoarea operație
        A = (1LL * A * (i + 1)) % N;
        B = (1LL * B * (i + 1)) % N;
        C = (1LL * C * (i + 1)) % N;
    }

    for (int i = 1; i <= N - 1; ++i) {
        fout << color[i] << "\n";
    }

    return 0;
}