Pagini recente » Cod sursa (job #174360) | Cod sursa (job #689113) | Cod sursa (job #54007) | Cod sursa (job #447392) | Cod sursa (job #34266)
Cod sursa(job #34266)
/*
Autor:Mihai Tabara
Punctaj: 100
Lang: C++
Prog:lista lui andrei
*/
#include <fstream>
using namespace std;
#define in "nrcuv.in"
#define out "nrcuv.out"
#define NMAX 1001
int n, m;
int l1[27];
int l2[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 )
l1[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] )
{
l2[j] += (l1[k]%104659);
l2[j] %= 104659;
}
}
}
for ( k = 1; k <= 26; ++k )
l1[k] = l2[k];
}
for ( i = 1; i <= 26; ++i )
nrsol += (l2[i]%104659);
}