Cod sursa(job #2476928)

Utilizator Nita_CristianNita Cristian Nita_Cristian Data 19 octombrie 2019 12:40:07
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>

#include <fstream>

#define NMAX 1005

#define CMAX 150

#define MOD 104659



using namespace std;



ifstream f("nrcuv.in");

ofstream g("nrcuv.out");



int dp[NMAX][CMAX], n, k, mat[CMAX][CMAX];



int main()

{

    f >> n >> k;



    for(int i = 1 ; i <= k ; i++)

    {

        char a, b;

        f >> a >> b;

        mat[a][b] = mat[b][a] = 1;

    }

    for(int i = 'a'; i <= 'z' ; i++)

        dp[1][i] = 1; // exista un string



    for(int i = 2 ; i<= n ; i++)

        for(int a = 'a'; a <= 'z'; a++)

            for(int b = 'a'; b <= 'z'; b++)

                if(mat[a][b] == 0)

                {

                    dp[i][b] += dp[i - 1][a];

                    dp[i][b] %= MOD;

                }



    int ans = 0;



    for(int i = 'a'; i <= 'z' ; i++)

    {

        ans += dp[n][i];

        ans %= MOD;

    }



    g << ans;

    f.close();

    g.close();

    return 0;

}