Pagini recente » Cod sursa (job #899124) | Cod sursa (job #1381804) | Cod sursa (job #798285) | Cod sursa (job #1710174) | Cod sursa (job #65259)
Cod sursa(job #65259)
#include <cstdio>
FILE *in = fopen("nrcuv.in","r"), *out = fopen("nrcuv.out","w");
int rez[1002][27] = {{0}};
int p[27][27] = {{0}};
int n, m;
void read()
{
char a, b;
fscanf(in, "%d %d", &n, &m);
for ( int i = 0; i < m; ++i )
{
fscanf(in, "%1s %1s", &a, &b);
p[a-'a'][b-'a'] = 1;
//p[b-'a'][a-'a'] = 1;
}
}
int main()
{
read();
for ( int j = 1; j <= 26; ++j )
rez[1][j] = 1;
for ( int i = 2; i <= n; ++i )
for ( int j = 1; j <= 26; ++j )
for ( int k = 1; k <= 26; ++k )
if ( !p[j-1][k-1] || !p[k-1][j-1] )
rez[i][j] = (rez[i][j] + rez[i-1][k]) % 104659;
// for ( int i = 1; i <= n; ++i )
// {
// for ( int j = 1; j <= 26; ++j )
// printf("%d ", rez[i][j]);
// printf("\n");
// }
int s = 0;
for ( int i = 1; i <= 26; ++i )
s = (s + rez[n][i]) % 104659;
fprintf(out, "%d\n", s);
return 0;
}