Pagini recente » Cod sursa (job #2870989) | Cod sursa (job #2339550) | Cod sursa (job #1754160) | Cod sursa (job #719051) | Cod sursa (job #2122397)
#include <bits/stdc++.h>
using namespace std;
int dp[1005][27],n,m;
bool valid[30][30];
int main()
{
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
in >> n >> m ;
char a,b;
for(int i=1; i<=m; i++)
{
in >> a >> b;
valid[a - 'a' +1][b-'a'+1] = 1;
valid[b - 'a' +1][a-'a'+1] = 1;
}
for(int i=1; i<=26; i++) dp[1][i] = 1;
for(int i=2; i<=n; i++)
for(int k=1; k<=26; k++ )
for(int j=1; j<=26; j++)
if( !valid[k][j] ) dp[i][k] = ( dp[i][k] + dp[i-1][j] ) % 104659;
int ans = 0;
for(int i=1; i<=26; i++)
ans = ( ans + dp[n][i] ) %104659;
out << ans;
return 0;
}