Cod sursa(job #3357253)

Utilizator CC2023Cezar Cirjau CC2023 Data 7 iunie 2026 17:13:04
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <bits/stdc++.h>

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

long long v[1000000], n, a, b, c, f[1000000], aux[1000000], a1, b1, c1, mini, maxi, q;
int main()
{
    fin>>n>>a>>b>>c;
    f[1]=1;
    for(int i=2; i<n; i++)
    {
        f[i]=f[i-1]*i;
        f[i]%=n;
    }
    for(int i=0; i<=n; i++)
    {
        aux[i]=i+1;
    }
    for(int i=n-1; i>=0; i--)
    {
        a1=f[i]*a;
        a1%=n;
        b1=f[i]*b;
        b1%=n;
        c1=f[i]*c;
        c1%=n;
        mini=min(b1, a1);
        maxi=max(b1, a1);
        /*for(int j=1; j<n; j++)
        {
            cout<<v[j]<<" ";
        }
        cout<<"\n";*/
        while(mini<=maxi)
        {
            if(!v[mini])
            {
                v[mini]=c1;
                q=aux[mini];
                if(aux[mini]<=aux[maxi])
                aux[mini]=aux[maxi];
                mini=q;
            }
            else
            {
                mini=aux[mini];
            }
            //cout<<mini<<" ";
        }
    }
    for(int i=1; i<n; i++)
    {
        fout<<v[i]<<"\n";
    }
    return 0;
}