Cod sursa(job #2563418)

Utilizator pregoliStana Andrei pregoli Data 1 martie 2020 11:26:51
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define newline '\n'
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
///**************************

const int NMAX = 1e6 + 5;
int n, a[NMAX], b[NMAX], c[NMAX], nexxt[NMAX], ans[NMAX];

signed main()
{
    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; i--)
    {
        int l = min(a[i], b[i]);
        int r = max(a[i], b[i]);

        while (l <= r)
        {
            if (!nexxt[l])
            {
                nexxt[l] = r + 1;
                ans[l] = c[i];
                l++;
            }
            else
                l = nexxt[l];
        }
    }

    for (int i = 1; i < n; i++)
        fout << ans[i] << newline;
    return 0;
}//*/