Cod sursa(job #2679098)

Utilizator RaresFelixTudose Rares Felix RaresFelix Data 29 noiembrie 2020 17:05:09
Problema Curcubeu Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fi("curcubeu.in");
ofstream fo("curcubeu.out");
typedef long long ll;
ll n, A[1000005], B[1000005], C[1000005], S[2000005], O[2000005];

int main()
{
    fi >> n >> A[1] >> B[1] >> C[1];
    for(ll i = 2; i <= n - 1; i++)
    {
        A[i] = (A[i-1] * i) % n;
        B[i] = (B[i-1] * i) % n;
        C[i] = (C[i-1] * i) % n;
    }
    ll st;
    for (ll i = n - 1; i >= 1; i--)
    {
        st = min(A[i],B[i]);
        while(st <= max(A[i],B[i]))
            if(S[st])st = S[st]+1;
            else {
                O[st] = C[i];
                S[st++] = max(A[i],B[i]);
            }
    }
    for (ll i = 1; i < n; ++i )
        fo << O[i] << "\n";

    return 0;
}