Pagini recente » Cod sursa (job #184805) | Cod sursa (job #210539) | Cod sursa (job #1624614) | Cod sursa (job #582318) | Cod sursa (job #794969)
Cod sursa(job #794969)
//D[i][j] = cate cuvinte de lungime j exista si terminate cu litera i
// calculez un cuvant de lungime i adaugand o litera la finalul unuia de lungime i-1
#include <fstream>
using namespace std;
int sol, n, m, i, j, ii;
char x, y;
int D[26][1010];
int M[26][26];
int main() {
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
f>>n>>m;
for (i=1;i<=m;i++) {
f>>x>>y;
M[x-'a'][y-'a'] = 1;
M[y-'a'][x-'a'] = 1;
}
for (i=0;i<=25;i++)
D[i][1] = 1;
for (j=2;j<=n;j++)
for (i=0;i<=25;i++) {
//calculam D[i][j] (pun deci la final litera i)
D[i][j] = 0;
for (ii=0;ii<=25;ii++)
if (M[ii][i] == 0) {
D[i][j] += D[ii][j-1];
D[i][j] %= 104695;
}
}
for (i=0;i<=25;i++) {
sol += D[i][n];
sol %= 104695;
}
g<<sol<<"\n";
return 0;
}