Cod sursa(job #3314363)

Utilizator Victor5539Tanase Victor Victor5539 Data 9 octombrie 2025 20:40:29
Problema Curcubeu Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#define ll long long
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");

const int MAX=1e6;
int n,i,color[MAX+5];
vector <int> add[MAX+5],rmv[MAX+5];
priority_queue <int> pq;
bool viz[MAX+5];
ll a,b,c;
int main()
{
    fin>>n>>a>>b>>c;

    for (i=1; i<=n-1; i++)
    {
        color[i]=c;

        add[min(a,b)].push_back(i);
        rmv[max(a,b)+1].push_back(i);

        a=(ll)a*(ll)(i+1)%(ll)n;
        b=(ll)b*(ll)(i+1)%(ll)n;
        c=(ll)c*(ll)(i+1)%(ll)n;

    }

    for (i=1; i<=n-1; i++)
    {
        for (auto x: add[i])
            pq.push(x);

        for (auto x: rmv[i])
            viz[x]=1;

        while (!pq.empty() && viz[pq.top()])
            pq.pop();

        if (pq.empty())
            fout<<0<<'\n';
        else
            fout<<color[pq.top()]<<'\n';
    }
    return 0;
}