Cod sursa(job #2761306)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 1 iulie 2021 15:56:45
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

const int MOD = 104659;

int n,m;

bool mat[26][26];

int dp[1003][26];

int main(){
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++){
        char a,b;
        scanf(" %c %c",&a,&b);
        mat[a-'a'][b-'a'] = 1;
        mat[b-'a'][a-'a'] = 1;
    }
    for(int i=0;i<26;i++)
        dp[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(!mat[j][k])
                    dp[i][j] = (dp[i][j] + dp[i-1][k]) % MOD;
            }
        }
    }
    int ans = 0;
    for(int i=0;i<26;i++){
        ans = (ans + dp[n][i])%MOD;
    }

    printf("%d\n",ans);


    return 0;
}