Cod sursa(job #5492)

Utilizator nemesisIchim Alexandru Eugen nemesis Data 12 ianuarie 2007 19:47:52
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
long a[1011][30];
int nu[30][38], n, m;

void solve()
{
  for(int i=1; i<=26; ++i) a[1][i]=1;
  for(int i=2; i<=n; ++i) {
    for(int j=1; j<=26; ++j) 
      for(int k=1; k<=26; ++k) if( !nu[j][k]) {
	a[i][j]+= a[i-1][k];
	a[i][j]= a[i][j]%104659;
      }
  }
  long suma=0;
  for(int i=1; i<=26; ++i) {
    suma+= a[n][i];
    suma= suma%104659;
  }
  printf("%ld\n",suma);
}

int main()
{
  freopen("nrcuv.in","r",stdin);
  scanf("%d %d\n",&n,&m);
  char x, y;
  for(int i=1; i<=m; ++i) {
    scanf("%c %c\n",&x,&y);
    nu[x-'a'+1][y-'a'+1]=1;
    nu[y-'a'+1][x-'a'+1]=1;
 }

  freopen("nrcuv.out","w",stdout);
  solve();
  return 0;
}