Cod sursa(job #286251)

Utilizator floringh06Florin Ghesu floringh06 Data 23 martie 2009 16:56:55
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda qwerty-1 Marime 0.96 kb
using namespace std;   
  
#define MAX_N 1005   
#define MAX_L 30   
#define MOD 104659   
  
#include <stdio.h>   
#include <fstream>   
  
FILE *fin=freopen("nrcuv.in","r",stdin),   
     *fout=freopen("nrcuv.out","w",stdout);   
        
int i,j,n,m,k;   
char c1,c2;   
long long  v[MAX_N][MAX_L];   
int o[MAX_L][MAX_L];   
long long sol;   
  
        
int main()   
{   
   scanf("%d %d\n",&n,&m);   
   memset(o,0,sizeof(o));   
   for (i=1; i<=m; i++) {   
    scanf("%c %c\n",&c1,&c2);   
    j=c1-96; k=c2-96;   
    o[j][k]=1; o[k][j]=1;   
   }   
   for (j=1; j<=26; j++)   
    v[1][j]=1;   
   for (i=1; i<=n; i++)   
    for (j=1; j<=26; j++)    
     for (k=1; k<=26; k++)   
      if (o[j][k]==0 && o[k][j]==0) v[i][j]=(v[i][j]+v[i-1][k])%MOD;     
   sol=0;      
   for (i=1; i<=26; i++)   
    sol=(sol+v[n][i])%MOD;   
   printf("%lld\n",sol);   
      
   fclose(stdin); fclose(stdout);   
      
   return 0;   
}