Pagini recente » Cod sursa (job #1439737) | Cod sursa (job #371020) | Cod sursa (job #3178729) | Cod sursa (job #2572327) | Cod sursa (job #1470819)
#include <fstream>
#include <cstring>
#define MAX 104659
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int n, m, c[31][31], p;
char a, b;
bool dif[31][31];
int calc(int i, int j);
int main()
{
memset(c, -1, sizeof(c));
fin >> n >> m;
for (int i = 1; i<=m; i++)
{
fin >> a >> b;
int h, g;
h= int(a) -96;
g = int(b) - 96;
dif[int(a) - 96][int(b) - 96] = 1;
dif[int(b) - 96][int(a) - 96] = 1;
}
/* for (int i = 1; i<=30; i++)
{
for (int j = 1; j<=30; j++)fout << dif[i][j] << ' ';
fout << '\n';
}*/
fout << calc(29, 0);
}
int calc(int i, int j)
{
int s =0;
if (c[i][j] !=-1)return c[i][j];
if (j == n)return 1;
for(int q = 1; q < 27; q++)
if(dif[i][q] == 0)
{
s += calc(q, j + 1);
s%=MAX;
}
c[i][j] = s;
return s;
}