Cod sursa(job #344574)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 30 august 2009 16:46:32
Problema Lista lui Andrei Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#define Nmax 1005
#define sigma 30
#define ll long long
#define M 104659

int v[sigma][sigma];
int a[Nmax][sigma];
int n,m,i,j,k;
ll sum,sum2;
char c1,c2;

int main(){
	freopen("nrcuv.in","r",stdin);
   freopen("nrcuv.out","w",stdout);
   scanf("%d%d\n",&n,&m);
   for(i=1;i<=m;++i){
   	scanf("%c %c\n",&c1,&c2);
      v[c1-'a'][c2-'a']=1;
      v[c2-'a'][c1-'a']=1;
   }

   for(i=0;i<26;++i) a[1][i]=1, ++sum;
   for(i=2;i<=n;++i){
     for(j=0;j<26;++j){
     		 a[i][j]=sum;
          for(k=0;k<26;k++)
            if(v[j][k]) a[i][j] -= a[i-1][k];
          sum2 = (sum2+a[i][j])%M;
     }
     sum=sum2; sum2=0;
   }

   printf("%lld\n",sum);
 //  printf("%d",'z'-'a');
   fclose(stdin); fclose(stdout);
}