Pagini recente » Cod sursa (job #2669078) | Cod sursa (job #1580740) | Cod sursa (job #2631145) | Cod sursa (job #2935648) | Cod sursa (job #1847714)
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MOD = 104659;
int d[1005][27];
bool ok[27][27];
//d[i][j]=nr de cuv de lungime i care se termina in litera j
//a[i][j] = 0 daca (i,j) pereche de litere valida, 1 daca nu
int main()
{
int n, m, i, j, k;
in >> n >> m;
char a, b;
for(i = 1; i <= m; i++)
{
in >> a >> b;
ok[a-'a'][b- 'a'] = 1;
ok[b- 'a'][a- 'a'] = 1;
}
for(j = 0; j < 26; j++)
d[1][j] = 1;
for(i = 2; i <= n; i++)
for(j = 0; j < 26; j++)
for(k = 0; k < 26; k++)
if(ok[k][j]== 0)
d[i][j] = (d[i][j] + d[i-1][k]) %MOD;
int nr = 0;
for(i = 0; i < 26; i++)
nr = (nr + d[n][i])%MOD;
out << nr;
return 0;
}