Pagini recente » Cod sursa (job #1379673) | Cod sursa (job #553892) | Cod sursa (job #2458579) | Cod sursa (job #2294121) | Cod sursa (job #1766299)
#include <iostream>
#include <fstream>
#define NMAX 1001
#define MMAX 2001
#define MOD 104659
#define ALF 26
using namespace std;
int d[NMAX][ALF],a[ALF][ALF],n,m;
char x,y;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int main()
{
in >> n >> m;
for(int i=0;i<m;i++)
{
in >> x >> y;
a[x-'a'][y-'a'] = 1;
a[y-'a'][x-'a'] = 1;
}
for(int i=0;i<ALF;i++)
{
d[1][i] = 1;
}
for(int i=2;i<=n;i++)
{
for(int j=0;j<ALF;j++)
{
for(int k=0;k<ALF;k++)
{
if(a[k][j]!=1)
{
d[i][j] = (d[i][j] + d[i-1][k])%MOD;
}
}
}
}
// for(int i=0;i<=n;i++)
// {
// for(int j=0;j<ALF;j++)
// {
// cout << d[i][j] << " ";
// }
// cout << endl;
// }
long long sum = 0;
for(int i=0;i<ALF;i++)
{
sum += d[n][i];
sum %=MOD;
}
out << sum%MOD;
return 0;
}