Pagini recente » Cod sursa (job #2721761) | Cod sursa (job #77880) | Clasament ems2 | Cod sursa (job #2268089) | Cod sursa (job #2813368)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 1000;
const int LMAX = 26;
const int MOD = 104659;
int d[NMAX + 5][LMAX + 5];
bool a[LMAX + 5][LMAX + 5];
char l1, l2;
int L1, L2;
int main()
{
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int n, m;
fin >> n >> m;
for (int i = 1; i <= m; ++i) {
fin >> l1 >> l2;
L1 = l1 - 'a' + 1;
L2 = l2 - 'a' + 1;
a[L1][L2] = a[L2][L1] = 1;
}
for (int i = 1; i <= LMAX; ++i) {
d[1][i] = 1;
}
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= LMAX; ++j) {
for (int k = 1; k <= LMAX; ++k) {
if (a[j][k] == 0) {
d[i][j] = (d[i][j] + d[i - 1][k]) % MOD;
}
}
}
}
int s = 0;
for (int i = 1; i <= LMAX; ++i) {
s = (s + d[n][i]) % MOD;
}
fout << s;
return 0;
}