Cod sursa(job #2476921)

Utilizator Dorin07Cuibus Dorin Iosif Dorin07 Data 19 octombrie 2019 12:36:28
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
#define NMAX 1005
#define CMAX 150
#define MOD 104659
using namespace std;

ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");

int dp[NMAX][CMAX], n, k, mat[NMAX][CMAX];
char a, b;

int main(){
    fin>>n>>k;
    for(int i = 1; i <= k; ++i){

            fin>>a>>b;
            mat[a][b] = mat[b][a] = 1;
    }
    for(int i = 'a'; i <= 'z'; ++i)
        dp[1][i] = 1;///exista un sir de lungime 1, avand ultimul element i
    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;
    }

    fout<<ans;
}