Cod sursa(job #5491)

Utilizator nemesisIchim Alexandru Eugen nemesis Data 12 ianuarie 2007 19:46:41
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 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];
  }
  long suma=0;
  for(int i=1; i<=26; ++i) suma+= a[n][i];
  printf("%ld\n",suma%104659);
}

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;
}