Cod sursa(job #2058471)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 5 noiembrie 2017 17:57:51
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

bool r[27][27];
int mat[1001][27] ;
int n,m;
char c1 , c2 ;
ifstream fin ("nrcuv.in") ;
ofstream fout ("nrcuv.out") ;

void citire()
{
    fin >> n >> m ;
    for ( int i = 1 ; i <= m ; i++ )
    {
        fin >> c1 >> c2 ;
        r[c1-'a'][c2-'a'] = true;
        r[c2-'a'][c1-'a'] = true;
    }
}
int main()
{
    int i , j , k , suma = 0 ;

    citire();

    for ( i = 1 ; i <= 26 ; i++ )
        mat[1][i] = 1 ;
    for ( i = 2 ; i <= n ; i++ )
    {
        for ( j = 1 ; j <= 26 ; j++ )
        {
            for (k = 1; k <= 26; k++)
            {
                if (r[k-1][j-1] == false)
                {
                    mat[i][j] += mat[i-1][k];
                    mat[i][j] = mat[i][j] % 104659 ;
                }
            }
        }
    }
    for ( i = 1 ; i <= 26 ; i++ )
    {
        suma = suma + mat[n][i] ;
        //suma = suma % 104659 ;
    }
    fout << suma ;
}