Pagini recente » Cod sursa (job #2070732) | Cod sursa (job #2631615) | Cod sursa (job #918668) | Cod sursa (job #334381) | Cod sursa (job #1565077)
#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 buf[10];
char a,b;
int i,j,k,s;
in>>n>>m;
in.getline(buf, 10); // '\n'
for(i=1; i<=m; ++i)
{
in.getline(buf, 10);
a = buf[0];
b = buf[2];
//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<=n; ++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;
}