Cod sursa(job #2462080)

Utilizator StanCatalinStanCatalin StanCatalin Data 26 septembrie 2019 18:52:59
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int dim = 1000010;

int n,next[dim],a[dim],b[dim],c[dim],ans[dim];

int main()
{
    int i,j;
    in >> n >> a[1] >> b[1] >> c[1];
    int a_nou,b_nou,c_nou;
    for (i=2; i<=n-1; 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;
    }

    int st,dr;


    int x;
    for (i=n-1; i>= 1; i--)
    {
        st = min(a[i],b[i]);
        dr = max(a[i],b[i]);
        x = st;

        while (x <= dr)
        {
            if (next[x] == 0)
            {
                ans[x] = c[i];
                next[x] = dr+1;
                x++;
            }
            else
            {
                x = next[x];
            }
        }
    }
    for (i=1; i<=n-1; i++)
    {
        out << ans[i] << "\n";
    }
    return 0;
}