Cod sursa(job #2567774)

Utilizator dragossofiaSofia Dragos dragossofia Data 3 martie 2020 18:49:38
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 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( i = 1 ; i <= n - 1 ; i ++ )
    {
        a[ i ] = A ;
        b[ i ] = B ;
        c[ i ] = C ;
        A = ( 1LL * A * ( i + 1 ) ) % n ;
        B = ( 1LL * B * ( i + 1 ) ) % n ;
        C = ( 1LL * C * ( i + 1 ) ) % n ;

    }
}

int main()
{
    fin>> n >> A >> B >> C ;

    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 ] ]<<" ";
    return 0;
}