Pagini recente » Cod sursa (job #524477) | Cod sursa (job #643650) | Cod sursa (job #1340142) | Cod sursa (job #207369) | Cod sursa (job #1563759)
#include<iostream>
#include<fstream>
using namespace std;
#define MOD 104659
#define N 1001
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int sol[26][N];
int not_vecin[26][26];
int n,m;
void afis_vecini()
{
int i,j;
for(i=0; i<8; ++i)
{
for(j=0; j<8; ++j) out<<not_vecin[i][j]<<" ";
out<<"\n";
}
}
int main()
{
char a,b;
int i,j,k,s;
in>>n>>m;
for(i=1; i<=m; ++i)
{
in>>a>>b;
//cout<<a<<" "<<b<<"\n";
a -= 'a';
b -= 'a';
not_vecin[a][b] = 1;
not_vecin[b][a] = 1;
}
//afis_vecini();
for(i=0; i<26; ++i) sol[i][1] = 1;
for(j=1; j<=m; ++j) /// 'j' litere
{
for(i=0; i<26; ++i) /// calculez cate posibilitati sunt care se termina in litera 'i'
for(k=0; k<26; ++k) /// si care continua litera 'k'
if(not_vecin[i][k] == 0)
{
sol[i][j] = (sol[i][j] + sol[k][j-1]) % MOD;
}
}
s=0;
for(i=0; i<26; ++i) s = (s + sol[i][n]) % MOD;
out<<s;
return 0;
}