Pagini recente » Cod sursa (job #1915137) | Cod sursa (job #2949792) | Cod sursa (job #1935950) | Cod sursa (job #1130356) | Cod sursa (job #66831)
Cod sursa(job #66831)
using namespace std;
#define MAX_N 1005
#define MAX_L 30
#include <stdio.h>
#include <fstream>
FILE *fin=fopen("nrcuv.in","r"),
*fout=fopen("nrcuv.out","w");
int i,j,n,m,k;
char c1,c2;
long long v[MAX_N][MAX_L];
int o[MAX_L][MAX_L];
long long sol;
int main()
{
fscanf(fin,"%d %d\n",&n,&m);
memset(o,0,sizeof(o));
for (i=1; i<=m; i++) {
fscanf(fin,"%c %c\n",&c1,&c2);
j=c1-96; k=c2-96;
o[j][k]=1; o[k][j]=1;
}
for (j=1; j<=26; j++)
v[1][j]=1;
for (i=1; i<=n; i++)
for (j=1; j<=26; j++)
for (k=1; k<=26; k++)
if (o[j][k]==0 && o[k][j]==0) v[i][j]+=v[i-1][k];
sol=0;
for (i=1; i<=26; i++)
sol+=v[n][i];
fprintf(fout,"%lld\n",sol);
fclose(fin); fclose(fout);
return 0;
}