Pagini recente » Cod sursa (job #2036727) | Cod sursa (job #2098105) | Cod sursa (job #2281478) | Cod sursa (job #2249511) | Cod sursa (job #3333094)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int NMAX = 1e3 + 2;
int n, m, dp[27][NMAX], fq[27][27];
signed main()
{
fin >> n >> m;
while (m--)
{
char l1, l2;
fin >> l1 >> l2;
// cout << (int)l1 - 'a' + 1 << " " << l2 << "\n";
fq[(int)l1 - 'a' + 1][(int)l2 - 'a' + 1] = 1;
fq[(int)l2 - 'a' + 1][(int)l1 - 'a' + 1] = 1;
}
// return 0;
for (int i = 1; i <= 26; i++)
{
dp[i][1] = 1;
}
for (int i = 2; i <= n; i++)
{
for (int k = 1; k <= 26; k++)
{
dp[k][i] = 0;
for (int j = 1; j <= 26; j++)
{
if (fq[k][j] == 0 && fq[j][k] == 0)
{
dp[k][i] = (dp[k][i] + dp[j][i - 1]) % 104659;
}
else{
cout << k << " " << j << "\n";
}
}
}
}
int ans = 0;
for(int i = 1; i <= 26; i++)
{
ans = (ans + dp[i][n]) % 104659;
}
fout << ans;
return 0;
}