Pagini recente » Cod sursa (job #1590961) | Cod sursa (job #3123838) | Cod sursa (job #1675567) | Cod sursa (job #2482217) | Cod sursa (job #2089367)
#include <stdio.h>
#include <stdlib.h>
#define MAXCHAR 26
#define NMAX 1000
#define MOD 104659
char leg[MAXCHAR][MAXCHAR];
int d[1 + NMAX][1 + MAXCHAR];
int main() {
int n, m;
char x, y;
FILE *fin = fopen("nrcuv.in", "r");
fscanf(fin, "%d%d\n", &n, &m);
for (int i = 0; i < m; ++i) {
x = fgetc(fin);
fgetc(fin);
y = fgetc(fin);
fgetc(fin);
leg[x - 'a'][y - 'a'] = leg[y - 'a'][x - 'a'] = 1;
}
for (int i = 0; i < MAXCHAR; i++)
d[1][i] = 1;
for (int i = 2; i <= n; i++)
for (int j = 0; j < MAXCHAR; j++)
for (int k = 0; k < MAXCHAR; k++)
if (leg[j][k] == 0)
d[i][j] = (d[i][j] + d[i - 1][k])%MOD;
int ans = 0;
for (int i = 0; i < MAXCHAR; ++i)
ans = (ans + d[n][i]) % MOD;
FILE *fout = fopen("nrcuv.out", "w");
fprintf(fout, "%d", ans);
return 0;
}