Pagini recente » Cod sursa (job #2517545) | Cod sursa (job #2291956) | Cod sursa (job #3293262) | Cod sursa (job #2463564) | Cod sursa (job #305952)
Cod sursa(job #305952)
#include <cstdio>
#define MOD 104659
using namespace std;
FILE *fin, *fout;
int N, M;
char x, y;
int A[32][32], L[32][32];
int NR[32][1024];
int main()
{
fin = fopen("nrcuv.in", "r");
fout = fopen("nrcuv.out", "w");
fscanf(fin, "%d %d", &N, &M);
while (M--)
{
fscanf(fin,"\n%c %c", &x, &y);
A[x-'a'+1][y-'a'+1] = A[y-'a'+1][x-'a'+1] = 1;
}
for (int i = 1; i <= 26; ++i)
for (int j = i; j <= 26; ++j)
if (A[i][j] == 0)
{
L[i][++L[i][0]] = j;
if (i != j)
L[j][++L[j][0]] = i;
}
for (int j = 1; j <= 26; ++j)
NR[j][1] = 1;
for (int i = 2; i <= N; ++i)
for (int j = 1; j <= 26; NR[j][i] %= MOD, ++j)
for (int k = 1; k <= L[j][0]; ++k)
NR[j][i] += NR[L[j][k]][i-1];
for (int i = 1; i <= 26; ++i)
NR[0][N] = NR[0][N] + NR[i][N] % MOD;
fprintf(fout, "%d\n", NR[0][N] % MOD);
fclose(fout);
fclose(fin);
return 0;
}