Pagini recente » Cod sursa (job #1620920) | Cod sursa (job #1390210) | Cod sursa (job #2478338) | Monitorul de evaluare | Cod sursa (job #1739402)
#include<fstream>
#define MOD 104659
using namespace std;
int n, m, sol, i, j, k;
char x, y;
int a[27][27];
int d[27][1010];
int main () {
ifstream fin ("nrcuv.in");
ofstream fout("nrcuv.out");
fin>>n>>m;
for (i=1;i<=m;i++) {
fin>>x>>y;
a[x-'a'][y-'a'] = 1;
a[y-'a'][x-'a'] = 1;
}
//d[i][j] = cate cuvinte de lungime j se termina cu litara i, cu i de la 0 la 25 si j de la 1 la n
for (i=0;i<=25;i++)
d[i][1] = 1;
for (int lg = 2; lg<=n; lg++) {
for (i=0;i<=25;i++) {
// calculez cate siruri de lungime lg se termina cu litera i
d[i][lg] = 0;
for (k=0;k<=25;k++)
if (a[k][i] == 0) {
d[i][lg] += d[k][lg-1];
d[i][lg] %= MOD;
}
}
}
for (i=0;i<=25;i++) {
sol += d[i][n];
if (sol >= MOD)
sol -= MOD;
}
fout<<sol;
return 0;
}