Pagini recente » Cod sursa (job #2472532) | Cod sursa (job #631702) | Cod sursa (job #2227026) | Cod sursa (job #1929988) | Cod sursa (job #1770581)
#include <fstream>
#include <vector>
using namespace std;
const int kMod = 104659;
int main()
{
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int n, m;
fin >> n >> m;
vector<vector<bool>> vecini(26, vector<bool>(26, true));
while (m--) {
char a, b;
fin >> a >> b;
vecini[a - 'a'][b - 'a'] = vecini[b - 'a'][a - 'a'] = false;
}
vector<vector<int>> nr_cuv(n + 1, vector<int>(26, 0));
nr_cuv[1] = vector<int>(26, 1);
for (int i = 2; i <= n; ++i) {
for (char c = 'a'; c <= 'z'; ++c) {
for (char vec = 'a'; vec <= 'z'; ++vec)
if (vecini[c - 'a'][vec - 'a'])
nr_cuv[i][c - 'a'] += nr_cuv[i - 1][vec - 'a'] % kMod;
}
}
int rezultat = 0;
for (char c = 'a'; c <= 'z'; ++c)
rezultat += nr_cuv[n][c - 'a'] % kMod;
fout << rezultat % kMod << "\n";
return 0;
}