Cod sursa(job #791824)

Utilizator Mitza444Vidrean Mihai Mitza444 Data 25 septembrie 2012 16:01:06
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<cstdio>
#include<iostream>
using namespace std;
int n,m;
int vec[27][27],D[1001][27];
int sum(int x,int y){
	int i,s=0;
	for(i=1;i<=26;i++){
		if(!vec[i][y])
			s+=D[x][i];
	}
	return s;
}
int main(){
	char x,y,c;
	int sol=0,i;
	freopen("nrcuv.in","r",stdin);
	scanf("%d%d\n",&n,&m);
	for(i=1;i<=m;i++){
		scanf("%c%c%c\n",&x,&c,&y);
		vec[x-'a'+1][y-'a'+1]=vec[y-'a'][x-'a']=1;
	}
	fclose(stdin);
	for(i=1;i<=26;i++)
		D[1][i]=1;
	for(i=2;i<=n;i++){
		for(int j=1;j<=26;j++)
			D[i][j]=sum(i-1,j);
	}
	for(i=1;i<=26;i++)
		sol+=D[n][i];
	sol%=104659;
	freopen("nrcuv.out","w",stdout);
	printf("%d\n",sol-1);
	fclose(stdout);
	return 0;
}