Pagini recente » Cod sursa (job #74941) | Cod sursa (job #1855949) | Istoria paginii runda/teme_acmunibuc_2014_1 | Cod sursa (job #321446) | Cod sursa (job #2851351)
//
// main.cpp
// Lista lui Andrei (infoarena)
//
// Created by Andrei Bădulescu on 18.02.22.
//
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MODULO = 104659;
bool posibilitati[27][27];
int main() {
int n;
in >> n;
int k;
in >> k;
int v[27][n + 1];
for (int i = 1; i <= k; i++) {
char a, b;
in >> a >> b;
posibilitati[a - 'a' + 1][b - 'a' + 1] = 1;
posibilitati[b - 'a' + 1][a - 'a' + 1] = 1;
}
for (int i = 1; i <= 26; i++) {
v[i][1] = 1;
}
for (int cnt = 2; cnt <= n; cnt++) {
for (int i = 1; i <= 26; i++) {
int answer = 0;
for (int k = 1; k <= 26; k++) {
if (posibilitati[i][k] == 0) {
answer += v[k][cnt - 1];
answer %= MODULO;
}
}
v[i][cnt] = answer;
}
}
int sum = 0;
for (int i = 1; i <= 26; i++) {
sum = (sum + v[i][n - 1]) % MODULO;
}
out << sum;
return 0;
}