Pagini recente » Cod sursa (job #3294920) | Cod sursa (job #1320378) | Cod sursa (job #118254) | Cod sursa (job #1301345) | Cod sursa (job #3308853)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
int main () {
int n, m;
fin >> n >> m;
vector<vector<int>> mat (123, vector<int> (123));
while (m--) {
char a, b;
fin >> a >> b;
mat[a][b] = 1;
mat[b][a] = 1;
}
const int mod = 104659;
vector<vector<int>> dp (123, vector<int> (n + 1));
for (int i = 97; i <= 122; ++i)
dp[i][1] = 1;
for (int i = 2; i <= n; ++i)
for (int j = 97; j <= 122; ++j)
for (int k = 97; k <= 122; ++k)
if (mat[k][j] == 0)
dp[j][i] = (dp[j][i] % mod + dp[k][i - 1] % mod) % mod;
int cnt = 0;
for (int i = 97; i <= 122; ++i)
cnt = (cnt % mod + dp[i][n] % mod) % mod;
fout << cnt;
return 0;
}