Pagini recente » Cod sursa (job #1756067) | Cod sursa (job #2933442) | Cod sursa (job #1849424) | Cod sursa (job #184291) | Cod sursa (job #1113072)
#include <fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
#define NMAX 1010
#define PMAX 27
const int MOD = 104659;
int M,N,DP[NMAX][PMAX];
bool Pairs[PMAX][PMAX];
int chartoInt(char C)
{
return ((int)C - (int)'a');
}
void Read(){
f>>N>>M; char x,y;
for (int i = 1; i <= M; i++) {
f>>x>>y;
Pairs[chartoInt(x)][chartoInt(y)] = true;
Pairs[chartoInt(y)][chartoInt(x)] = true;
}
}
void Init(){
for (int j = 0; j < 26; j++) {
DP[1][j] = 1;
}
}
void Solve(){
Init();
for (int i = 2; i <= N; i++) {
for (int j = 0; j < 26; j++) {
for (int k = 0; k < 26; k++) {
if (!Pairs[k][j]) {
DP[i][j] = (DP[i][j] + DP[i-1][k])%MOD;
}
}
}
}
}
void Write(){
int sum = 0;
for (int j = 0; j < 26; j++) {
sum = (sum+ DP[N][j]) % MOD;
}
g<<sum;
}
int main()
{
Read();
Solve();
Write();
}