Pagini recente » Cod sursa (job #3355416) | Cod sursa (job #2676716) | Cod sursa (job #685819) | Cod sursa (job #999254) | Cod sursa (job #3334627)
#include <fstream>
#include <climits>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
int main()
{
////declarare
int a[32][1005], n, m, i, perechi[32][32], s = 0;
char aux, aux2; // a=0,b=1....
/// initializare
for (i = 0; i < 26; i++)
{
for (int j = 0; j < 26; j++)
perechi[i][j] = 0;
a[i][1] = 1;
a[i][0] = 0;
}
// citire
cin >> n >> m;
for (i = 0; i < m; i++)
{
cin >> aux >> aux2;
perechi[aux - 97][aux2 - 97] = 1;
}
// algoritm
for (i = 2; i <= n; i++)
{
for (int l = 0; l <= 25; l++)
{
a[l][i] = 0;
for (int lit = 0; lit <= 25; lit++)
{
if (perechi[lit][l] == 0 && perechi[l][lit] == 0)
{
a[l][i] = (a[l][i]%104659 + a[lit][i - 1]%104659)%104659;
}
}
}
}
// calc suma
for (i = 0; i <= 25; i++)
{
s = (s%104659 + a[i][n]%104659)%104659;
}
// afisare
cout << s;
}
/////use for debbuging
/* for (i=0;i<32;i++){
for (int j=0;j<32;j++)
cout << perechi [i][j]<< " ";
cout << endl;
} */