Cod sursa(job #3193071)

Utilizator juincPopescu Marian juinc Data 13 ianuarie 2024 22:31:10
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

long long l[1000005], r[1000005], color[1000005];
int range[1000005], result[1000005];

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

    int n;
    fin >> n >> l[1] >> r[1] >> color[1];

    for (int i = 2; i < n; i++)
    {
        l[i] = (l[i - 1] * i) % n;
        r[i] = (r[i - 1] * i) % n;
        color[i] = (color[i - 1] * i) % n;
    }

    for (int i = n - 1; i > 0; i--)
    {
        int min_index = std::min(l[i], r[i]);
        int max_index = std::max(l[i], r[i]);

        for (int j = min_index; j <= max_index; j++)
            if (range[j] != 0)
                j = range[j];
            else
            {
                range[j] = max_index;
                result[j] = color[i];
            }
        
    }

    for (int i = 1; i < n; i++)
        fout << result[i] << "\n";

    return 0;
}