Pagini recente » Cod sursa (job #900527) | Cod sursa (job #1074783) | Cod sursa (job #45490) | Cod sursa (job #558217) | Cod sursa (job #2295278)
#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' ] = 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 %= MOD ; s += dp [ i ][ j ] ; }
}
g << s << "\n" ;
return 0 ;
}