Pagini recente » Monitorul de evaluare | Cod sursa (job #1373776) | Cod sursa (job #1108508) | Cod sursa (job #616670) | Cod sursa (job #852938)
Cod sursa(job #852938)
#include<stdio.h>
#include<string.h>
#define mod 104659
using namespace std;
long d[ 1007 ] [ 27 ] , a [ 27 ] [ 27 ] , n , m , sol ;
char ch ;
void dinamic ( )
{
for ( long i = 2 ; i <= n ; ++ i )
for ( long j = 1 ; j <= 26 ; ++ j )
for ( long k = 0 ; k <= 26 ; ++ k )
if ( a [ k ] [ j ] == 0 )
d [ i ] [ j ] = ( d [ i ] [ j ] + d [ i - 1 ] [ k ] ) % mod ;
}
int main ( )
{
freopen ( "nrcuv.in" , "r" , stdin ) ;
freopen ( "nrcuv.out" , "w" , stdout ) ;
scanf ( "%ld %ld\n" , & n , & m ) ;
for ( long i = 1 ; i <= m ; ++ i )
{
scanf ( "%c " , & ch ) ;
long x = ch - 'a' + 1 ;
scanf ( "%c\n" , & ch ) ;
long y = ch - 'a' + 1 ;
a [ x ] [ y ] = 1 ;
a [ y ] [ x ] = 1 ;
}
memset ( d [ 1 ] , 1 , sizeof ( d [ 1 ] ) ) ;
dinamic ( ) ;
for ( long i = 1 ; i <= 26 ; ++ i )
sol += d [ n ] [ i ] , sol %= mod ;
printf ( "%ld" , sol % mod ) ;
return 0 ;
}