Pagini recente » Cod sursa (job #963698) | Cod sursa (job #773272) | Cod sursa (job #2260809) | Cod sursa (job #3255183) | Cod sursa (job #1593913)
#include <fstream>
#include <iostream>
#include <bitset>
using namespace std;
int n, m, dp[1005][30], mod = 104659, sol;
bitset <30> check[30];
char a, b;
int main()
{
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
f >> n >> m;
for(int i = 1; i <= m; i++){
f >> a >> b;
check[a - 96][b - 96] = check[b - 96][a - 96] = 1;
}
for(int i = 1; i <= 26; i++) dp[1][i] = 1;
for(int k = 2; k <= n; k++)
for(int i = 1; i <= 26; i++)
for(int j = 1; j <= 26; j++)
if(!check[i][j]) dp[k][i] = (dp[k][i] + dp[k - 1][i])%mod;
for(int i = 1; i <= 26; i++)
sol = (sol + dp[n][i])%mod;
g << sol%mod;
return 0;
}