Cod sursa(job #2681488)

Utilizator RaresFelixTudose Rares Felix RaresFelix Data 5 decembrie 2020 17:56:58
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
 
using namespace std;
 
ifstream fi("curcubeu.in");
ofstream fo("curcubeu.out");
typedef long long ll;
int 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] = (int)(((long long)(A[i-1]) * i) % n);
        B[i] = (int)(((long long)(B[i-1]) * i) % n);
        C[i] = (int)(((long long)(C[i-1]) * i) % n);
    }
    int st, maAB;
    for (int 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;
}