Cod sursa(job #852950)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 11 ianuarie 2013 22:17:50
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#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 = 0 ; i <= 25 ; ++ i )
        d [ 1 ] [ i ] = 1 ;
    for ( long i = 2 ; i <= n ; ++ i )
        for ( long j = 0 ; j <= 25 ; ++ j )
            for ( long k = 0 ; k <= 25 ; ++ 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' ;
        scanf ( "%c\n" , & ch ) ;
        long y = ch - 'a' ;
        a [ x ] [ y ] = 1 ;
        a [ y ] [ x ] = 1 ;
    }
    dinamic ( ) ;
    for ( long i = 0 ; i <= 25 ; ++ i )
        sol += d [ n ] [ i ] , sol %= mod ;
    printf ( "%ld" , sol % mod ) ;
    return 0 ;
}