Pagini recente » Cod sursa (job #2488191) | Cod sursa (job #2215251) | Cod sursa (job #2174702) | Cod sursa (job #2201177) | Cod sursa (job #2396165)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int n, m;
char ch1, ch2;
bool adiac[30][30];
int d[1005][30];
int main()
{
in >> n >> m;
for(int i = 1; i <= m; i++)
{
in >> ch1 >> ch2;
adiac[ch1-'a'][ch2-'a'] = 1;
adiac[ch2-'a'][ch1-'a'] = 1;
}
for(char ch = 'a'; ch <= 'z'; ch++)
d[1][ch-'a'] = 1;
for(int i = 2; i <= n; i++)
{
for(char ch = 'a'; ch <= 'z'; ch++)
{
for(char other = 'a'; other <= 'z'; other++)
{
if(!adiac[ch-'a'][other-'a'])
d[i][ch-'a'] = (d[i][ch-'a'] + d[i-1][other-'a']) % 104659;
}
}
}
int ans = 0;
for(char ch = 'a'; ch <= 'z'; ch++)
ans = (ans + d[n][ch-'a'])%104659;
out << ans;
return 0;
}