Pagini recente » Cod sursa (job #655419) | Cod sursa (job #3269234) | Cod sursa (job #85026) | Cod sursa (job #1347541) | Cod sursa (job #3142198)
#include <fstream>
using namespace std;
ifstream cin ("nrcuv.in");
ofstream cout ("nrcuv.out");
int factor[26] , mod = 104659;
bool exclus[26][26];
int Exponentiere (int baza , int exponent)
{
int rezultat = 1;
while (exponent)
{
if (exponent & 1)
rezultat = 1LL * rezultat * baza % mod;
baza = 1LL * baza * baza % mod;
exponent >>= 1;
}
return rezultat;
}
int main ()
{
int lungime , perechi;
cin >> lungime >> perechi;
for (char litere[2] ; perechi ; perechi--)
cin >> litere[0] >> litere[1] , exclus[litere[0] - 'a'][litere[1] - 'a'] = exclus[litere[1] - 'a'][litere[0] - 'a'] = true;
int total = 0;
for (int litera_1 = 0 ; litera_1 < 26 ; litera_1++)
{
for (int litera_2 = 0 ; litera_2 < 26 ; litera_2++)
if (!exclus[litera_1][litera_2]) factor[litera_1]++;
(total += Exponentiere(factor[litera_1] , lungime - 1)) %= mod;
}
cout << total;
cout.close(); cin.close();
return 0;
}