Pagini recente » Cod sursa (job #44654) | Cod sursa (job #439006) | Cod sursa (job #493803) | Cod sursa (job #3230437) | Cod sursa (job #2295293)
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 104659 ;
using namespace std ;
const int NR = 1005 ;
ifstream f ("nrcuv.in") ;
ofstream g ("nrcuv.out") ;
bool map1 [ 26 ][ 26 ] = { false } ;
int dp [ 26 ][ NR ] ;
int n , m , s ;
int main ()
{
f >> n >> m ;
for ( int i = 1 ; i <= m ; ++ i )
{
char a , b ; f >> a >> b ;
map1 [ a - 'a' ][ b - 'a' ] = true ;
map1 [ b - 'a' ][ a - 'a' ] = true ;
}
for ( int k = 0 ; k <= 25 ; ++ k ) dp [ k ][ 1 ] = 1 ;
for ( int j = 2 ; j <= n ; ++ j )
for ( int i = 0 ; i <= 25 ; ++ i )
{
for ( int k = 0 ; k <= 25 ; ++ k )
if ( !map1 [ k ][ i ] ) dp [ i ][ j ] += dp [ k ][ j - 1 ] ;
dp [ i ][ j ] %= MOD ;
if ( j == n ) s += dp [ i ][ j ] ;
}
g << s % MOD << "\n" ;
return 0 ;
}