Pagini recente » Cod sursa (job #1647389) | Cod sursa (job #614126) | Cod sursa (job #2205104) | Cod sursa (job #1923102) | Cod sursa (job #2519011)
#include <fstream>
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
int n, m, litere[30][30], dp[1010][30];
void citire () {
char x, y;
fin >> n >> m;
int a[30][30] = {0};
for (int i = 1; i <= m; i++) {
fin >> x >> y;
a[x-96][y-96] = 1;
a[y-96][x-96] = 1;
}
for (int i = 1; i <= 26; i++) {
for (int j = 1; j <= 26; j++) {
if (a[i][j])
litere[i][ ++litere[i][0] ] = j;
}
}
}
int main()
{
citire();
dp[1][0] = 26;
for (int i = 1; i <= 26; i++)
dp[1][i] = 1;
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= 26; j++) {
dp[i][j] = dp[i-1][0];
for (int k = 1; litere[j][k]; k++)
dp[i][j] -= dp[i-1][ litere[j][k] ];
// if (dp[i][j] < 0)
//dp[i][j] = 0;
dp[i][0] += dp[i][j];
dp[i][0] %= 104659;
}
}
fout << dp[n][0];
return 0;
}