Cod sursa(job #2107573)

Utilizator CryshanaGanea Carina Cryshana Data 17 ianuarie 2018 15:45:32
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;
const int N = 1001 , L = 26;
int d[N][L];
bool lit[L][L];

int main()
{
    ifstream fin  ( "nrcuv.in" );
    ofstream fout ( "nrcuv.out" );
    int n, m, a, b;
    char c1, c2;
    fin >> n >> m;
    for ( int i = 1 ; i <= m ; i ++ )
        {
            fin >> c1 >> c2;
            a = c1 - 'a';
            b = c2 - 'a';
            lit[a][b] = 1;
            lit[b][a] = 1;
        }
    for ( int i = 0 ; i < 26 ; i++ )
        d[1][i] = 1;
    for ( int i = 2 ; i <= n; i++ )
        {
            for ( int j = 0 ; j < 26 ; j ++ )
                {
                    for ( int k = 0 ; k < 26 ; k ++ )
                        {
                            if ( !lit [j][k] )
                                {
                                    d[i][j] += d[i-1][k];
                                }
                        }
                }
        }
     a = 0;
     for ( int i = 0 ; i < 26; i++ )
        a += d[n][i];
    fout << a;
    return 0;
}