Cod sursa(job #6106)

Utilizator crawlerPuni Andrei Paul crawler Data 17 ianuarie 2007 16:48:49
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define fin "nrcuv.in"
#define fout "nrcuv.out"



char u[27][27], a, b;
int n, m, i, j, k;
long v[1001][26], s;


int main()
{
 freopen(fin,"r",stdin);
 freopen(fout,"w",stdout);
 scanf("%i%i\n", &n, &m);
 
for(i=1;i<=m;++i)
 {
  scanf("%c %c\n", &a, &b);
  u[a-96][b-96] = u[b-96][a-96] = 1;
 }
  
for(i=1;i<=26;++i)
 v[1][i]=1;

for(i=2;i<=n;++i)
 for(j=1;j<=26;++j)
  {
   s=0;
   for(k=1;k<=26;++k)
    if(u[j][k]!=1)
     {
      s+=v[i-1][k]);
      s%=104659;
     }
   v[i][j]=s;
  }

s=0;
for(i=1;i<=26;++i)
 {
  s+=v[n][i]);
  s%=104659;
 }
printf("%ld\n",s);
return 0;
}