Pagini recente » Cod sursa (job #1876851) | Cod sursa (job #2256237) | Cod sursa (job #329071) | Cod sursa (job #760012) | Cod sursa (job #988153)
Cod sursa(job #988153)
#include <iostream>
#include <fstream>
#define MAX_N 1001
#define MAX_M 2001
#define mod 104659
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
bool a[30][30];
int n,m,d[MAX_N][30];
void citire()
{
char x, y;
in>>n>>m;
int i;
for(i=1; i<=m; i++)
{
in>>x>>y;
a[x-'a'+1][y-'a'+1]=1;
a[y-'a'+1][x-'a'+1]=1;
}
}
void dinamica()
{
int i,j,k;
for(j=1; j<=26; j++) d[1][j]=1;
for(i=2; i<=n; i++)
for(j=1; j<=26; j++)
{
for(k=1; k<=26; k++)
if(a[k][j]==0)
{
d[i][j]=d[i][j]+d[i-1][k];
d[i][j]=d[i][j]%mod;
}
}
}
int get_answer()
{
int i,answer=0;
for(i=1; i<=26; i++)
{
answer+=d[n][i];
}
return answer%mod;
}
int main()
{
citire();
dinamica();
int i,j;
/*
for(i=1; i<=n; i++)
{
for(j=1; j<=26; j++)
cout<<d[i][j]<<' ';
cout<<endl;
}
*/
out<<get_answer();
return 0;
}