Pagini recente » Cod sursa (job #2960574) | Cod sursa (job #2933613) | Cod sursa (job #2747481) | Cod sursa (job #2672793) | Cod sursa (job #2254639)
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#define MOD 104659
using namespace std;
int n, m;
bool skip[26][26];
int cache[26][1024];
int count(int current, int remainingLength) {
if (cache[current][remainingLength] != 0) {
return cache[current][remainingLength];
}
if (remainingLength == 0) {
return 1;
}
int result = 0;
for (int i = 0; i < 26; ++i) {
if (skip[current][i]) {
continue;
}
result += count(i, remainingLength - 1) % MOD;
}
cache[current][remainingLength] = result % MOD;
return result;
}
int main() {
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
scanf("%d %d\n", &n, &m);
for (int i = 0; i < m; ++i) {
char x, y;
scanf("%c %c\n", &x, &y);
x -= 'a';
y -= 'a';
skip[x][y] = true;
skip[y][x] = true;
}
int result = 0;
for (int i = 0; i < 26; ++i) {
result += count(i, n - 1) % MOD;
}
result %= MOD;
printf("%d", result);
return 0;
}