Pagini recente » Cod sursa (job #1412118) | Cod sursa (job #465293) | Cod sursa (job #689003) | Cod sursa (job #2716972) | Cod sursa (job #2192375)
#include <fstream>
#define maxn 1000
#define nl 26
#define mod 104659
using namespace std;
int dp[nl][maxn+5];
bool fb[nl][nl]; /// forbidden
int main ()
{
ifstream fin ( "nrcuv.in" );
ofstream fout ( "nrcuv.out" );
int n, m;
fin >> n >> m;
int i;
char a, b;
fin.get ();
for ( i = 0; i < m; i++ )
{
fin.get ( a );
fin.get ();
fin.get ( b );
fin.get ();
a -= 'a';
b -= 'a';
fb[a][b] = fb[b][a] = 1;
}
for ( i = 0; i < nl; i++ )
dp[i][0] = 1;
int j, k;
for ( i = 1; i < n; i++ )
for ( j = 0; j < nl; j++ )
for ( k = 0; k < nl; k++ )
if ( fb[j][k] == 0 )
dp[k][i] = ( dp[k][i] + dp[j][i-1] ) % mod;
int sum = 0;
for ( i = 0; i < nl; i++ )
sum = ( sum + dp[i][n-1] ) % mod;
fout << sum;
fin.close ();
fout.close ();
return 0;
}