Cod sursa(job #2626682)

Utilizator bem.andreiIceman bem.andrei Data 7 iunie 2020 17:30:54
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("curcubeu.in");
ofstream w("curcubeu.out");
int n, a[1000003], b[1000003], c[1000003], next[1000003], ans[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;
    }
    for (int i = n - 1; i; i--)
    {
        int l = min(a[i], b[i]);
        int r = max(a[i], b[i]);
        while (l <= r)
        {
            if (!next[l])
            {
                next[l] = r + 1;
                ans[l] = c[i];
                l++;
            }
            else{
                l = next[l];
            }
        }
    }
    for (int i = 1; i < n; i++){
        w<<ans[i]<<"\n";
    }
    return 0;
}