Pagini recente » Borderou de evaluare (job #804922) | Cod sursa (job #2247822) | Cod sursa (job #568291) | Cod sursa (job #2424110) | Cod sursa (job #3275276)
#include <bits/stdc++.h>
using namespace std;
#define mod 104659;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int n, m, c[30][30]{}, d[1000][30]{};
bool t;
int main(void)
{
f >> n >> m;
for (int i = 1; i <= m; i++) {
char a, b;
f >> a >> b;
c[int(a) - 96][int(b) - 96] = 1;
c[int(b) - 96][int(a) - 96] = 1;
}
for(int i = 1; i <= 26; i++)
d[1][i] = 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= 26; j++)
for (int k = 1; k <= 26; k++)
if (c[j][k] != 1 && c[k][j] != 1)
d[i][j] = (d[i][j] + d[i - 1][k]) % mod;
long long int sum = 0;
for(int i = 1; i <= 26; i++)
sum = (d[n][i] + sum) % mod;
g << sum;
return 0;
}