Pagini recente » Cod sursa (job #1744769) | Cod sursa (job #566874) | Cod sursa (job #1203863) | Cod sursa (job #103560) | Cod sursa (job #1807514)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MOD = 104659;
int mat[1003][27];
bool l[27][27];
int main()
{
int n, m, i, j, k, rez;
char l1, l2;
in>>n>>m;
for(i = 1; i <= m; i++)
{
in >> l1 >> l2;
l[l1 - 'a' + 1][l2 - 'a' + 1] = l[l2 - 'a' + 1][l1 - 'a' + 1] = true;
}
for(i = 1; i <= 26; i++)
mat[1][i] = 1;
for(i = 2; i <= n; i++){
for(j = 1; j <= 26; j++)
for(k = 1; k <= 26; k++)
{
if(!l[j][k])
mat[i][j] = (mat[i][j]+mat[i-1][k]) % MOD;
}
}
for(i = 1; i <= 26; i++)
rez = (rez + mat[n][i]) % MOD;
out<<rez;
return 0;
}