Cod sursa(job #273691)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 8 martie 2009 21:28:13
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
# include <stdio.h>
# define n 1001
int N,M,i,j,k;
long Nr[n][n],S;
char s[3],A[n][n];
int main(){

  freopen("nrcuv.in", "r", stdin);   
  freopen("nrcuv.out", "w", stdout);
  scanf("%d %d\n",&N,&M);
  for (i=1;i<=M;i++){
   gets(s);
   A[s[0]-96][s[2]-96]=1;
   A[s[2]-96][s[0]-96]=1;
  }  
  for (j=1;j<=26;j++)
	Nr[1][j]=1;
  for (i=2;i<=N;i++)
   for (j=1;j<=26;j++){
	Nr[i][j]=0;
	for (k=1;k<=26;k++)
	   if (A[j][k]==0) Nr[i][j]=(Nr[i][j]+Nr[i-1][k])%104659;
	}
  for (i=1,S=0;i<=26;i++) S=(S+Nr[N][i])%104659;
  printf("%ld",S);	  
  return 0;
}