Pagini recente » Cod sursa (job #603867) | Cod sursa (job #2417016) | Cod sursa (job #1124694) | Cod sursa (job #1548886) | Cod sursa (job #1509103)
#include <stdio.h>
using namespace std;
const int MOD = 104659;
bool exp[27][27];
int d[1001][27];/// d[i][j] = cate cuvinte cu i litere se termina in litera j
/// d[i][j]=sum(d[i-1][0...j] fara exceptii)
int main()
{
FILE *fin,*fout;
fin=fopen("nrcuv.in","r");
fout=fopen("nrcuv.out","w");
int n,m;
fscanf(fin,"%d%d\n",&n,&m);
for(int i=1;i<=m;i++)
{
char x,y;
fscanf(fin,"%c %c\n",&x, &y);
exp[x-'a'][y-'a']=1;
exp[y-'a'][x-'a']=1;
}
for(int i=0;i<26;i++)
d[1][i]=1;
for(int i=1;i<=n;i++)
for(int j=0;j<26;j++)
{
for(int k=0;k<26;k++)
if(exp[j][k]==0 && exp[k][j]==0)
d[i][j]=(d[i][j]+d[i-1][k]) % MOD;
}
int s=0;
for(int i=0;i<26;i++)
s=(d[n][i]+s) % MOD;
fprintf(fout,"%d",s);
return 0;
}