Cod sursa(job #2980986)

Utilizator StefantimStefan Timisescu Stefantim Data 17 februarie 2023 00:30:01
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");


const int NMAX = 1000010;
int a[NMAX], b[NMAX], c[NMAX], v[NMAX], sol[NMAX];
int main()
{
    int n;
    fin >> n >> a[1] >> b[1] >> c[1];
    for(int i = 2; i < n; i++)
    {
        a[i] = (1ll*a[i-1] * i) % n;
        b[i] = (1ll*b[i-1] * i) % n;
        c[i] = (1ll*c[i-1] * i) % n;
    }
    for(int i = n-1; i >= 1; i--)
    {
        int st = min(a[i],b[i]);
        int dr = max(a[i],b[i]);
        for(int j = st; j <= dr; j++)
        {
            if(v[j] == 0)
            {
                v[j] = dr;
                sol[j] = c[i];
            }
            else
                j = v[j];
        }
    }
    for(int i = 1; i < n; i++)
        fout << sol[i] << "\n";
    return 0;
}