Pagini recente » Cod sursa (job #3243890) | Cod sursa (job #2527851) | Cod sursa (job #1622052) | Cod sursa (job #2798931) | Cod sursa (job #33265)
Cod sursa(job #33265)
#include <fstream>
using namespace std;
#define in "nrcuv.in"
#define out "nrcuv.out"
#define NMAX 1001
int n, m;
int sol[1001][27];
int mat[27][27];
int nrsol;
void Read();
void Dinamic();
ofstream fout ( out );
int main()
{
Read();
Dinamic();
fout << nrsol%104659 << "\n";
fout.close();
return 0;
}
void Read()
{
ifstream fin ( in );
char ch;
fin >> n >> m;
fin.get();
int i;
char a, b;
for ( i = 1; i <= m; ++i )
{
fin >> a >> b;
int nra = a - 96;
int nrb = b - 96;
mat[nra][nrb] = 1;
mat[nrb][nra] = 1;
fin.get();
}
fin.close();
}
void Dinamic()
{
int i, j, k;
for ( i = 1; i <= 26; ++i )
sol[1][i] = 1;
for ( i = 2; i <= n; ++i )
{
for ( j = 1; j <= 26; ++j )
{
for ( k = 1; k <= 26; ++k )
{
if ( !mat[j][k] && !mat[k][j] )
{
sol[i][j] += (sol[i-1][k]%104659);
sol[i][j] %= 104659;
}
}
}
}
for ( i = 1; i <= 26; ++i )
nrsol += (sol[n][i]%104659);
}