Pagini recente » Cod sursa (job #1264464) | Istoria paginii runda/oni_check/clasament | Cod sursa (job #2225211) | Istoria paginii runda/gdrgasd | Cod sursa (job #1241396)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("nrcuv.in");
ofstream g ("nrcuv.out");
const int MOD = 104659, NMAX = 1000 + 1, LMAX = 26 + 1;
int n, m;
int v[LMAX][LMAX], sol[NMAX][LMAX];
void citeste() {
char a, b;
f >> n >> m;
for (int i = 1; i <= m; i++) {
f >> a >> b;
v[a - 'a' + 1][b - 'a' + 1] = 1;
v[b - 'a' + 1][a - 'a' + 1] = 1;
}
}
void rezolva() {
for (int i = 1; i < LMAX; i++) sol[1][i] = 1;
for (int i = 2; i <= n; i++) {
for (int a = 1; a < LMAX; a++)
for (int b = 1; b < LMAX; b++)
if (v[a][b] == 0){
sol[i][a] += sol[i - 1][b];
sol[i][a] %= MOD;
}
}
int rez = 0;
for (int i = 1; i < LMAX; i++) rez = (rez + sol[n][i]) % MOD;
g << rez << '\n';
}
int main() {
citeste();
rezolva();
return 0;
}