Cod sursa(job #1369117)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 2 martie 2015 21:58:05
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#define mod 104659
int dp[1001][27], s, n, m;
bool v[27][27];
int main(){
	freopen("nrcuv.in", "r", stdin);
	freopen("nrcuv.out", "w", stdout);
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= m; ++i){
		char x, y;
		scanf("%c %c\n", &x, &y);
		v[x - 'a'][y - 'a'] = v[y - 'a'][x - 'a'] = true;
	}
	for(int i = 0; i < 26; ++i)
		dp[1][i] = 1;
    for(int i = 2; i <= n; ++i)
        for(int j = 0; j < 26; ++j)
            for(int k = 0; k < 26; ++k)
				if(!v[j][k]){
					dp[i][j] += dp[i - 1][k];
					dp[i][j] %= mod;
				}
	for(int i = 0; i < 26; ++i){
		s += dp[n][i];
		s %= mod;
	}
	printf("%d\n", s);
    return 0;
}