Pagini recente » Cod sursa (job #921816) | Cod sursa (job #248556) | Cod sursa (job #2923248) | Cod sursa (job #1064264) | Cod sursa (job #960709)
Cod sursa(job #960709)
#include <fstream>
using namespace std;
#define modulo 104659
long count[26];
long count2[26];
long N,M;
long adjmat[26][26];
int main(void)
{
fstream fin("nrcuv.in",ios::in);
fstream fout("nrcuv.out",ios::out);
for (long a = 0;a < 26;a += 1)
{
for (long b = 0;b < 26;b += 1)
{
adjmat[a][b] = 0XFFFFFFFF;
}
}
fin >> N >> M;
for (long a = 0;a < M;a += 1)
{
char S1[2],S2[2];
fin >> S1 >> S2;
adjmat[S1[0] - 'a'][S2[0] - 'a'] = 0;
adjmat[S2[0] - 'a'][S1[0] - 'a'] = 0;
}
for (long i = 0;i < 26;i += 1)
{
count[i] = 1;
}
for (long i = 1;i < N;i += 1)
{
for (long a = 0;a < 26;a += 1)
{
count2[a] = 0;
for (long b = 0;b < 26;b += 1)
{
count2[a] += adjmat[b][a] & count[b];
}
}
for (long a = 0;a < 26;a += 1)
{
count[a] = count2[a] % modulo;
}
}
long sum = 0;
for (long i = 0;i < 26;i += 1)
{
sum += count[i];
}
sum %= modulo;
fout << sum;
fin.close();
fout.close();
return 0;
}