Pagini recente » Cod sursa (job #1750950) | Cod sursa (job #1956192) | Cod sursa (job #2561535) | Cod sursa (job #1299911) | Cod sursa (job #1236970)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 27
#define MOD 104659
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int n, m, i, j, rez;
char a, b;
int A[nmax][nmax];
void citire()
{
fin >> n >> m;
for (i=1; i<=26; i++)
for (j=1; j<=26; j++)
A[i][j] = 1;
for (i=1; i<=m; i++)
{
fin >> a >> b;
A[int(a - 'a')+1][int(b - 'a')+1] = 0;
A[int(b - 'a')+1][int(a - 'a')+1] = 0;
}
}
int log(int x, int k)
{
if (k==1){
return x;
}
if (k % 2 == 0)
return log(x, k/2) * log(x, k/2) % MOD;
else
return x * log(x, k/2) * log(x, k/2) % MOD;
}
void solve()
{
for (i=1; i<=26; i++)
for (j=1; j<=26; j++)
if (A[i][j] == 1)
A[i][j] = log(2, n-1) % MOD,
rez += A[i][j] % MOD;
fout << rez / 2 << "\n";
}
int main()
{
citire();
solve();
fin.close();
fout.close();
return 0;
}