Pagini recente » Cod sursa (job #2485956) | Cod sursa (job #598959) | Cod sursa (job #2745879) | Cod sursa (job #848238) | Cod sursa (job #1452871)
#include <fstream>
#include <vector>
#define MOD 104659
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
long long n , m , dp[1005][50] , mat[50][50];
int main()
{
char l1 , l2 ;
f >> n >> m ;
if(n == 1){
g << 26;
return 0;
}
for(int i = 1 ; i <= m ; ++i){
f >> l1 >> l2;
mat[l1 - 'a' + 1][l2 - 'a' + 1] = mat[l2 - 'a' + 1][l1 - 'a' + 1] = 1;
}
for(int i = 1 ; i <= 26 ; ++i){
dp[1][i] = 1 ;
}
for(int i = 2 ; i <= n ; ++i){
for(int j = 1 ; j <= 26 ; ++j){
for(int k = 1 ; k <= 26; ++k){
if(mat[j][k] == 0){
dp[i][j] += dp[i - 1][k];
dp[i][j] %= MOD;
}
}
}
}
int sol = 0 ;
for(int i = 1 ; i <= 26 ; ++i){
sol += dp[n][i];
sol %= MOD;
}
g << sol % MOD;
return 0;
}