Cod sursa(job #852936)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 11 ianuarie 2013 22:12:17
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
#include<string.h>
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 ] ;
}
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 ] ;
    printf ( "%ld" , sol ) ;
    return 0 ;
}