Pagini recente » Cod sursa (job #1368913) | Cod sursa (job #912062) | Cod sursa (job #1595144) | Cod sursa (job #1693258) | Cod sursa (job #1983537)
#include <cstdio>
using namespace std;
FILE *in,*out;
bool imp[30][30];
int dp[1001][30];
const int modulo = 104659;
int main()
{
in = fopen("nrcuv.in","r");
out = fopen("nrcuv.out","w");
int n,m;
fscanf(in,"%d %d\n",&n,&m);
for(int i = 1;i <= m;i ++)
{
char x,y;
fscanf(in,"%c %c\n",&x,&y);
int a = x - 'a';
int b = y - 'a';
//printf("%d %d\n",a,b);
imp[a][b] = imp[b][a] = true;
}
for(int i = 0;i < 26;i ++)
dp[1][i] = 1;
int nr = 0;
for(int i = 1;i <= n;i ++)
{
for(int j = 0;j < 26;j ++)
{
for(int k = 0;k < 26;k ++)
{
if(!imp[k][j])
{
dp[i][j] = (dp[i][j] + dp[i-1][k]) % modulo;
}
}
if(i ==n)
nr = (nr + dp[i][j]) % modulo;
}
//for(int j = 0;j < 26;j ++)
//fprintf(out,"%d\t", dp[i][j]);
//fprintf(out, "\n");
}
fprintf(out,"%d",nr);
return 0;
}