Cod sursa(job #2567755)

Utilizator dragossofiaSofia Dragos dragossofia Data 3 martie 2020 18:43:15
Problema Curcubeu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 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 = ( A * ( i + 1 ) ) % n ;
        B = ( B * ( i + 1 ) ) % n ;
        C = ( 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 ;
                nex[ i ] = j ;
            }

            else
                j = nex [ co [ j ] ] ;

        }
    }

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