Pagini recente » Cod sursa (job #1968732) | Cod sursa (job #2172995) | Cod sursa (job #2812210) | Cod sursa (job #752267) | Cod sursa (job #2356336)
#include <fstream>
constexpr int MAX_N = 1001;
constexpr int MOD = 104659;
int d[MAX_N][26], v[26], n, m;
int main() {
std::ifstream in("nrcuv.in");
std::ofstream out("nrcuv.out");
int i, j, k, r = 0;
char x, y;
in >> n >> m;
for (i = 0; i < m; ++i) {
in >> x >> y;
x -= 'a';
y -= 'a';
v[x] |= 1 << y;
v[y] |= 1 << x;
}
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 ((v[j] & (1 << k)) == 0)
d[i][j] = (d[i][j] + d[i - 1][k]);
d[i][j] %= MOD;
}
}
for (j = 0; j < 26; ++j) r += d[n][j];
out << r % MOD;
return 0;
}