Pagini recente » Cod sursa (job #2629487) | Cod sursa (job #2412513) | Cod sursa (job #1511719) | Cod sursa (job #2649841) | Cod sursa (job #1128954)
#include<cstdio>
using namespace std;
bool com[26][26];
int nr[1001][26];
int main()
{
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
//nr[i][j] = cate cuvinte formate cu primele i litere se termina cu a j-a litera din alfabet
//nr[i][j] = suma(nr[i-1][j']), unde j' e compatibil cu j
int n,m,i,j,j1,suma;
scanf("%d %d\n",&n,&m);
char a,b;
for(i=1;i<=m;i++)
{
scanf("%c %c\n",&a,&b);
com[a-'a'][b-'a']=true;
com[b-'a'][a-'a']=true;
}
for(i=0;i<26;i++)
nr[1][i]=1;
for(i=2;i<=n;i++)
for(j=0;j<26;j++)
{
suma=0;
for(j1=0;j1<26;j1++)
if(!com[j][j1] && !com[j1][j])
suma+=nr[i-1][j1]%104659;
nr[i][j]=suma;
}
suma=0;
for(j=0;j<26;j++)
suma+=nr[n][j]%104659;
printf("%d",suma%104659);
return 0;
}