Cod sursa(job #148718)

Utilizator marinMari n marin Data 4 martie 2008 19:29:45
Problema Lista lui Andrei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define MOD 104659

int a[1001][26];
int v[26][26];
int n,m,i,j,k,s;
char x,y;

int main(){
  FILE *f = fopen("nrcuv.in","r");
  fscanf(f,"%d %d",&n,&m);
  for (i=0;i<2*m;){
    fscanf(f,"%c",&x);
    if ((x>='a')&&(x<='z')) {
      i++;
      if (i%2==0) {
	a[x-'a'][y-'a']=a[y-'a'][x-'a']=1;
      }
      y=x;
    }
  }
  fclose(f);

  for (i=0;i<26;i++){
    v[1][i]=1;
  }

  for (i=2;i<=n;i++) {
    for (j=0;j<26;j++) {
      s = 0;
      for (k=0;k<26;k++)
	if (a[k][j]==0)
	  s=(s+v[i-1][k])%MOD;
      a[i][j]=s;
    }
  }
  s=0;
  for (i=0;i<26;i++)
    s = (s+a[n][i])%MOD;
  FILE *g = fopen("nrcuv.out","w");
  fprintf(g,"%d",s);
  fclose(g);
  return 0;
}