Cod sursa(job #2626801)

Utilizator bem.andreiIceman bem.andrei Data 8 iunie 2020 13:52:06
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("curcubeu.in");
ofstream w("curcubeu.out");
int n, a[1000003], b[1000003], c[1000003], complet[1000003], col[1000003], st, dr;
bool viz[1000003];
int main ()
{
    r>>n>>a[1]>>b[1]>>c[1];
    for(int i=2; i<n; ++i)
    {
        a[i]=(1ll*a[i-1]*i)%n;
		b[i]=(1ll*b[i-1]*i)%n;
		c[i]=(1ll*c[i-1]*i)%n;
    }
    int cn=n;
    for(int i=1; i<=n; ++i)
    {
        complet[i]=i;
    }
    while(n--)
    {
        st=min(a[n], b[n]);
        dr=a[n]+b[n]-st;
        for(int i=st; i<=dr; ++i)
        {
            if(viz[i]==1){
                i=complet[i]-1;
            }
            else
            {
                col[i]=c[n];
                viz[i]=1;
                complet[i]=dr+1;
            }
        }
    }
    for(int i=1; i<cn; ++i)
    {
        w<<col[i]<<"\n";
    }
    return 0;
}