Pagini recente » Cod sursa (job #556835) | Cod sursa (job #2945815) | Cod sursa (job #639423) | Cod sursa (job #1404141) | Cod sursa (job #3235181)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
string file = "nrcuv";
ifstream fin (file + ".in");
ofstream fout (file + ".out");
const int mod = 104659;
int n,m, dp[1001][26];
bool stop[26][26];
void citire()
{
char x,y;
fin >> n >> m;
for (int i=1; i<=m; i++)
{
fin >> x >> y;
x-='a';
y-='a';
stop[x][y] = stop[y][x] = 1;
}
for (int i=0; i<26; i++)
dp[1][i] = 1;
}
void dinamica()
{
for (int i=1; i<=n; i++)
{
for (int a=0; a<26; a++)
{
for (int b=0; b<26; b++)
{
dp[i][a] += dp[i-1][b] * !stop[a][b];
}
dp[i][a] %= mod;
}
}
}
void afisare()
{
int s = 0;
for (int i=0; i<26; i++)
s += dp[n][i];
fout << s % mod;
}
int main ()
{
citire();
dinamica();
afisare();
}