Pagini recente » Cod sursa (job #607953) | Cod sursa (job #981586) | Cod sursa (job #1589792) | Monitorul de evaluare | Cod sursa (job #1851319)
#include <cstdio>
#define LITERE 26
#define MOD 104659
using namespace std;
FILE *f, *g;
int n, m;
bool ap[30][30];
int dp[30][30];
int rez;
void readFile()
{
f = fopen("nrcuv.in", "r");
fscanf(f, "%d%d\n", &n, &m);
int i;
char a, b;
for(i = 1; i <= m; i ++)
{
fscanf(f, "%c %c\n", &a, &b);
a -= 'a';
a ++;
b -= 'a';
b ++;
ap[a][b] = ap[b][a] = 1;
}
fclose(f);
}
void solve()
{
int i, j;
for(i = 1; i <= LITERE; i ++)
dp[1][i] = 1;
int h;
for(i = 2; i <= n; i ++)
{
for(j = 1; j <= LITERE; j ++)
{
for(h = 1; h <= LITERE; h ++)
{
if(ap[h][j] == 0)
dp[i][j] += dp[i - 1][h];
dp[i][j] %= MOD;
}
}
}
for(i = 1; i <= LITERE; i ++)
rez += dp[n][i], rez %= MOD;
}
void printFile()
{
g = fopen("nrcuv.out", "w");
fprintf(g, "%d\n", rez);
fclose(g);
}
int main()
{
readFile();
solve();
printFile();
return 0;
}