Cod sursa(job #3127216)

Utilizator DumitrescuADumitrescuA DumitrescuA Data 7 mai 2023 13:36:59
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
using namespace std;

ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");

bool frv[26][26];
int dp[1001][26];

int main()
{
    int n,m,i,j,k;
    char a,b;
    cin>>n>>m;
    for(i=0;i<m;i++){
        cin>>a>>b;
        frv[a-'a'][b-'a']=frv[b-'a'][a-'a']=1;
    }
    for(i=0;i<26;i++)
        dp[0][i]=1;
    for(i=1;i<n;i++){
        for(j=0;j<26;j++){
            for(k=0;k<26;k++){
                if(frv[j][k]==0 && frv[k][j]==0){
                    dp[i][j]+=dp[i-1][k];
                    if(dp[i][j]>=104659)dp[i][j]-=104659;
                }
            }
        }
    }
    int s=0;
    for(i=0;i<26;i++){
        s+=dp[n-1][i];
        if(s>=104659)
            s-=104659;
    }
    cout<<s;
    return 0;
}