Pagini recente » Cod sursa (job #1897858) | Cod sursa (job #1260710) | Cod sursa (job #143181) | Cod sursa (job #2517706) | Cod sursa (job #219580)
Cod sursa(job #219580)
#include<stdio.h>
#define alpha 26
#define NMAX 1024
#define MOD 104659
bool L[alpha+6][alpha+6];
int A[alpha+6][NMAX];
void read(const int M)
{
int a1,a2;
char ch1,ch2;
for(int i=1; i<=M; ++i){
scanf("%c %c\n",&ch1,&ch2);
a1=(int)ch1 - 96;a2=(int)ch2 - 96;
L[a1][a2]=L[a2][a1]=1;
}
}
void solve(const int N)
{
int i,j,k;
for(i=1; i<=alpha; ++i) A[i][1]=1;
for(i=2; i<=N; ++i)
for(j=1; j<=alpha; ++j)
for(k=1; k<=alpha; ++k)
{
if( !L[j][k] )
A[j][i]=(A[j][i]+A[k][i-1])%MOD;
}
}
void show(const int N)
{
int ANS=0;
for(int i=1; i<=alpha; ++i)
ANS=(ANS+A[i][N])%MOD;
printf("%d\n",ANS);
}
int main()
{
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
int N,M;
scanf("%d%d\n",&N,&M);
read(M);
solve(N);
show(N);
return 0;
}