Cod sursa(job #2811011)

Utilizator pielevladutPiele Vladut Stefan pielevladut Data 30 noiembrie 2021 21:08:14
Problema Curcubeu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1000000;

int n;
int a[NMAX + 5];
int b[NMAX + 5];
int c[NMAX + 5];
int nxt[NMAX + 5];
int ans[NMAX + 5];

int main()
{
    fin >> n >> a[1] >> b[1] >> c[1];
    for(int i = 2; i < n; i ++)
    {
        a[i] = (a[i - 1] * i) % n;
        b[i] = (b[i - 1] * i) % n;
        c[i] = (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(nxt[j] == 0)
            {
                nxt[j] = dr;
                ans[j] = c[i];
            }
            else
            {
                j = nxt[j];
            }
        }
    }
    for(int i = 1; i < n; i ++)
    {
        fout << ans[i] << '\n';
    }
    return 0;
}