Pagini recente » Cod sursa (job #809491) | Cod sursa (job #1356022) | Cod sursa (job #2652122) | Clasament preoni_2018 | Cod sursa (job #1427622)
#include <iostream>
#include <fstream>
using namespace std;
int imposibil[27][27];
int tabel[27][1001];
void rez(int acata, int lungimeramasa)
{
int i,total=0;
if (tabel[acata][lungimeramasa] == 0)
{
if (lungimeramasa == 1)
{
tabel[acata][lungimeramasa] = 1;
return;
}
for (i = 1; i <= 26; i++)
{
if (imposibil[acata][i] == 0)
{
rez(i, lungimeramasa - 1);
total += tabel[i][lungimeramasa - 1];
total %= 104659;
}
}
tabel[acata][lungimeramasa] = total;
}
else
{
return;
}
}
int main()
{
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int n, m,i,total=0;
char x, y;
in >> n;
in >> m;
for (i = 1; i <= m; i++)
{
in >> x;
in >> y;
x -= 96;
y -= 96;
imposibil[x][y] = 1;
imposibil[y][x] = 1;
}
for (i = 1; i <= 26; i++)
{
rez(i, n);
total += tabel[i][n];
total %= 104659;
}
out << total;
}