Pagini recente » Cod sursa (job #203294) | Cod sursa (job #1533624) | Cod sursa (job #601239) | Cod sursa (job #613355) | Cod sursa (job #1284127)
#include <fstream>
#include <cstring>
#define MOD 104659
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
int a[28], b[28];
int i, n, m, sol, j, k;
char l1, l2;
int x[28][28];
int main()
{
fin >> n >> m;
for (i=1; i<=m; i++) {
fin >> l1 >> l2;
x[l1-'a'][l2-'a'] = 1;
x[l2-'a'][l1-'a'] = 1;
}
// coloana 1
for (i=0;i<26;i++)
a[i] = 1;
for (j=2;j<=n;j++) {
memset(b, 0, sizeof(b));
for (i=0;i<26;i++) {
// D[i][j] = ? siruri de lungime j se termin cu litera i
// b[i] =
for (k=0;k<=26;k++) {
//incerc sa pun litera i la finalul unui sir care \
//se termina cu litera k de lungime j-1
if (x[ k ][ i ] == 0) {
b[i] += a[k];
b[i] = b[i] % MOD;
}
}
}
memcpy(a, b, sizeof(a));
}
for (i=0;i<26;i++) {
sol += a[i];
if (sol >= MOD)
sol -= MOD;
}
fout << sol;
return 0;
}