Cod sursa(job #2681486)

Utilizator RaresFelixTudose Rares Felix RaresFelix Data 5 decembrie 2020 17:53:05
Problema Curcubeu Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 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, maAB;
    for (ll i = n - 1; i >= 1; i--)
    {
    	maAB = max(A[i], B[i]);
        st = min(A[i],B[i]);
        while(st <= maAB)
            if(S[st])st = S[st]+1;
            else {
                O[st] = C[i];
                S[st++] = maAB;
            }
    }
    for (ll i = 1; i < n; ++i )
        fo << O[i] << "\n";
 
    return 0;
}