Cod sursa(job #2839209)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 25 ianuarie 2022 15:39:59
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
#define DIM 1000005

using namespace std;

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

int n,i,a,b,c,urm[DIM],sol[DIM];

struct op{
    int st;
    int dr;
    int val;
} v[DIM];

int main()
{
    fin >> n >> a >> b >> c;
    v[1] = {min(a, b), max(a, b), c};
    for (i=2; i<=n-1; i++)
    {
        a = (a*1LL*i)%n;
        b = (b*1LL*i)%n;
        c = (c*1LL*i)%n;
        v[i] = {min(a, b), max(a, b), c};
    }
    for (i=n-1; i>=1; i--)
    {
        int st1 = v[i].st; int dr1 = v[i].dr; int val1 = v[i].val;
        while (st1 <= dr1)
            if (!urm[st1])
            {
                sol[st1] = val1;
                urm[st1] = dr1;
                st1++;
            }
            else
                st1 = urm[st1]+1;
    }
    for (i=1; i<n; i++)
        fout << sol[i] << "\n";
    return 0;
}