Pagini recente » Cod sursa (job #840473) | Cod sursa (job #2251959) | Cod sursa (job #2900500) | Cod sursa (job #399528) | Cod sursa (job #3142200)
#include <fstream>
using namespace std;
ifstream cin ("nrcuv.in");
ofstream cout ("nrcuv.out");
int modalitati[2][26] , mod = 104659;
bool exclus[26][26];
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;
for (int litera = 0 ; litera < 26 ; litera++)
modalitati[0][litera] = 1;
for (int lungime_actuala = 2 ; lungime_actuala <= lungime ; lungime_actuala++) {
for (int litera_1 = 0 ; litera_1 < 26 ; litera_1++) {
modalitati[1][litera_1] = 0;
for (int litera_2 = 0 ; litera_2 < 26 ; litera_2++)
if (!exclus[litera_1][litera_2]) (modalitati[1][litera_1] += modalitati[0][litera_2]) %= mod;
}
swap(modalitati[0] , modalitati[1]);
}
int total = 0;
for (int litera = 0 ; litera < 26 ; litera++)
(total += modalitati[0][litera]) %= mod;
cout << total;
cout.close(); cin.close();
return 0;
}