Pagini recente » Borderou de evaluare (job #86219) | Cod sursa (job #3032212) | Rezultatele filtrării | Cod sursa (job #2320380) | Cod sursa (job #594084)
Cod sursa(job #594084)
# include <fstream>
# include <cstring>
using namespace std;
int ap[30][30], n, m, i, j, k, a[2][30], P = 1, U = 0, sol;
char c1, c2;
int main ()
{
ifstream f ("nrcuv.in");
ofstream g ("nrcuv.out");
f >> n >> m;
for (i = 1; i <= m; ++i){
f >> c1 >> c2;
ap[c1 - 'a'][c2 - 'a'] = 1;
ap[c2 - 'a'][c1 - 'a'] = 1;
}
for (i = 0; i < 26; ++i)
a[U][i] = 1;
for (i = 2; i <= n; ++i)
{
for (j = 0; j < 26; ++j)
for (k = 0; k < 26; ++k)
if (!ap[j][k])
{
a[P][j] += a[U][k];
a[P][j] %= 104659;
}
memset (a[U], 0, sizeof (a[U]));
P ^= U ^= P ^= U;
}
for (j = 0; j < 26; ++j) sol = sol + a[U][j];
g << sol % 104659;
g.close ();
return 0;
}