Pagini recente » Cod sursa (job #1650092) | Cod sursa (job #295554) | Cod sursa (job #2230871) | Cod sursa (job #1518746) | Cod sursa (job #2410199)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
const int lit = 28, nmax = 1e3 + 5, mod = 104659;
bitset <lit> a[lit];
char c1, c2;
int n, m, dp[nmax][lit], sol;
int main()
{
fin >> n >> m;
while(m--)
{
fin >> c1 >> c2;
a[c1-97][c2-97] = a[c2-97][c1-97] = 1;
}
for (int i=0; i<26; ++i)
dp[1][i] = 1;
for (int i=2; i<=n; ++i)
for (int j=0; j<26; ++j)
{
for (int k=0; k<26; ++k)
if (!a[j][k])
{
dp[i][j] = (dp[i][j] + dp[i-1][k]) % mod;
}
if (i == n)
{
sol = (sol + dp[i][j]) % mod;
}
}
if (n == 1) fout << 26;
else fout << sol;
return 0;
}