Pagini recente » Cod sursa (job #792834) | Cod sursa (job #1476389) | Cod sursa (job #212354) | Cod sursa (job #1534380) | Cod sursa (job #479999)
Cod sursa(job #479999)
#include <stdio.h>
#include <string.h>
const char IN[] ="nrcuv.in";
const char OUT[] ="nrcuv.out";
const int mod = 104659;
int N,M;
int a[2][26];
bool c[26][26];
int rec()
{
int i,j,k,p1,p2,s;p1=0;p2=1;
for (i=0;i<26;i++)
a[1][i]=1;
for (i=1;i<N;i++)
{
memset(a[p1],0,sizeof(a[p1]));
for (j=0;j<26;j++)
for (k=0;k<26;k++)
if ( !c[j][k] )
a[p1][j]= (a[p1][j]+a[p2][k])%mod;
int tmp=p1;
p1=p2;
p2=tmp;
}
s=0;
for (i=0;i<26;i++)
s= (s+a[p2][i])%mod;
return s;
}
void citire()
{
int i;char x,y;
freopen(IN,"r",stdin);
scanf("%d%d\n",&N,&M);
for (i=0;i<M;i++)
scanf("%c%c%c\n",&x,&y,&y),
c[x-'a'][y-'a']=c[y-'a'][x-'a']=1;
fclose(stdout);
}
void scriere(int x)
{
freopen(OUT,"w",stdout);
printf("%d\n",x);
fclose(stdout);
}
int main()
{
citire();
scriere(rec());
return 0;
}