Pagini recente » Cod sursa (job #670256) | Cod sursa (job #834452) | Cod sursa (job #2070734) | Cod sursa (job #1571651) | Cod sursa (job #3136815)
#include <fstream>
using namespace std;
ifstream in;
ofstream out;
int np[1005][26];
bool ok[26][26];
int main()
{
in.open("nrcuv.in");
out.open("nrcuv.out");
int n, m;
in >> n >> m;
for (int i = 0; i < 26; i++)
{
for (int j = 0; j < 26; j++)
{
ok[i][j] = 1;
}
}
for (int i = 0; i < m; i++)
{
char a, b;
in >> a >> b;
a -= 'a';
b -= 'a';
ok[a][b] = 0;
ok[b][a] = 0;
}
for (int i = 0; i < n; i++)
{
if (!i)
{
for (int j = 0; j < 26; j++)
{
np[i][j] = 1;
}
}
else
{
for (int j = 0; j < 26; j++)
{
for (int k = 0; k < 26; k++)
{
if (ok[j][k])
{
np[i][j] += np[i - 1][k];
}
np[i][j] %= 104659;
}
}
}
}
int r = 0;
for (int i = 0; i < 26; i++)
{
r += np[n - 1][i];
r %= 104659;
}
out << r;
}