Cod sursa(job #2567791)

Utilizator dragossofiaSofia Dragos dragossofia Data 3 martie 2020 18:55:22
Problema Curcubeu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define Nmax 1000001

using namespace std;

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

int a[ Nmax ], b[ Nmax ], c[ Nmax ], n, A, B, C, nex[ Nmax ],co[Nmax];

void precalc ( )
{
    int i ;
       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;
    }

}

int main()
{
    fin>> n >> a[1] >> b[1] >> c[1] ;

    precalc();

    int i, j ;
    for ( i = n - 1 ; i >= 1 ; i -- )
    {
        for( j = min ( b[i], a[ i ] ) ; j<= max (b[i], a[ i ] ) ; j ++ )
        {
            if( co [ j ] == 0 )
            {
                co[ j ] = i ;

            }
            else
                j = nex [ co [ j ] ] ;

        }
        nex[ i ] = max( a[ i ], b[ i ] ) ;
    }

    for( i = 1 ; i <= n - 1 ; i ++)
        fout<<c[ co [ i ] ]<<"\n";
    return 0;
}