Cod sursa(job #944640)

Utilizator alex.glontGlontaru Alexandru alex.glont Data 29 aprilie 2013 10:00:03
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#define modulum 104659
using namespace std;

fstream in( "nrcuv.in" , ios::in ),
        out( "nrcuv.out" , ios::out );

int n , m , d[1000][26] ;
bool mat[26][26];

void verifica(){
    int i , j ;
    char a , b ;

    for(i=0 ; i<m ; i++){
        in >>ws>> a>>ws >> b>>ws ;
        mat[(int)a-'a'][(int)b-'a'] = true;
        mat[(int)b-'a'][(int)a-'a'] = true;
    }
}

int sum(int i , int j){
    int k , s=0;
    for(k=0 ; k<26 ; k++){
        if(!mat[k][j])
            s=( s + d[i-1][k]) % modulum;
    }
    return s;
}

int main(){

    in >> n >> m >>ws;

    verifica();
    int i , j ;
    for(i=0 ; i<26 ; i++){
        d[0][i] = 1;
    }

    for(i=1 ; i<n ; i++){
        for(j=0 ; j<26 ; j++){
            d[i][j] = sum(i,j) ;
        }
    }

    int s=0;
    for(j=0 ; j<26 ; j++){
        s= (s + d[n-1][j]) % modulum;
    }

    out << s <<'\n';
    return 0;
}