Cod sursa(job #2626768)

Utilizator bem.andreiIceman bem.andrei Data 8 iunie 2020 11:33:35
Problema Curcubeu Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 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]=((long long)a[i-1]*i)%n;
        b[i]=((long long)b[i-1]*i)%n;
        c[i]=((long long)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;
}