Pagini recente » Cod sursa (job #3331933) | Monitorul de evaluare | Cod sursa (job #1109244) | Monitorul de evaluare | Cod sursa (job #3343952)
#include <fstream>
using namespace std;
const int N = 1000;
const int NL = 26;
const int MOD = 104659;
int nrc[N+1][NL];
bool incomp[NL][NL];
int main()
{
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
int n, m;
in >> n >> m;
for ( int i = 0; i < m; i++ ){
char x, y;
in >> x >> y;
incomp[x-'a'][y-'a'] = incomp[y-'a'][x-'a'] = true;
}
in.close();
for ( int j = 0; j < NL; j++ ) nrc[1][j] = 1;
for ( int i = 2; i <= n; i++ )
for ( int j = 0; j < NL; j++ )
for ( int k = 0; k < NL; k++ )
if ( !incomp[k][j] )
nrc[i][j] = (nrc[i][j] + nrc[i-1][k]) % MOD;
int rez = 0;
for ( int j = 0; j < NL; j++ )
rez = ( rez + nrc[n][j] ) % MOD;
out << rez << '\n';
out.close();
return 0;
}