Pagini recente » Cod sursa (job #3292058) | Cod sursa (job #1734865) | Cod sursa (job #2091333) | Cod sursa (job #1571180) | Cod sursa (job #2851427)
//
// 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");
int posibilitati[27][27];
int v[1001][27];
int main() {
int n;
in >> n;
int k;
in >> k;
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[1][i] = 1;
}
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= 26; j++) {
int answer = 0;
for (int k = 1; k <= 26; k++) {
if (posibilitati[k][j] == 0) {
answer += v[i - 1][k];
answer %= 104659;
}
}
v[i][j] = answer;
}
}
int rasp = 0;
for (int i = 1; i <= 26; i++) {
rasp += v[n][i];
if (rasp >= 104659) {
rasp -= 104659;
}
}
out << rasp;
return 0;
}