Pagini recente » Cod sursa (job #586926) | Cod sursa (job #3285662) | Cod sursa (job #2700737) | Cod sursa (job #3145677) | Cod sursa (job #2383967)
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
char x,y;
int n,m,a[26][26],s;
int d[1004][26];
///d[i][j]=cate siruri de lungime i se termina cu a j-a litera
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
a[x-'a'][y-'a']=a[y-'a'][x-'a']=1;
}
for(int i=0;i<26;i++)
d[1][i]=1;
for(int i=2;i<=n;i++)
{
///calculez nr de siruri de lungime i
for(int j=0;j<26;j++)
{
///calculez d[i][j] adica cate siruri de lungime i terminate cu litera j
///adaug litera j la finalul unui sir de lungime i-1
d[i][j]=0;
///caut sa pun litera k di[a fiecare litera acceptabila a unui sir
for(int k=0;k<26;k++)
if(a[j][k]==0)
d[i][j]=(d[i][j]+d[i-1][k])%104659;
}
}
for(int i=0;i<26;i++)
s=(s+d[n][i])%104659;
fout<<s;
return 0;
}