Pagini recente » Cod sursa (job #619050) | Cod sursa (job #2812737) | Cod sursa (job #1849631) | Cod sursa (job #1362305) | Cod sursa (job #2266939)
#include <bits/stdc++.h>
#define car(x) (x - 'a' + 1)
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
const int MOD = 104659;
int n, m;
int dp[1001][27];
bool ok[27][27];
int main()
{
char a, b;
f >> n >> m;
for(int i = 1; i <= m; ++i)
{
f >> a >> b;
ok[car(a)][car(b)] = ok[car(b)][car(a)] = 1;
}
for(int i = 1; i <= 26; ++i)
dp[1][i] = 1;
for(int i = 1; i <= n; ++i)
for(int k = 1; k <= 26; ++k)
{
for(int j = 1; j <= 26; ++j)
if(!ok[k][j])
{
dp[i][k] += dp[i-1][j];
dp[i][k] %= MOD;
}
}
int answer = 0;
for(int i = 1; i <= 26; ++i)
answer += dp[n][i];
g << answer;
return 0;
}