Pagini recente » Cod sursa (job #3222691) | Cod sursa (job #773649) | Cod sursa (job #976927) | Cod sursa (job #2435348) | Cod sursa (job #2110525)
#include<fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int n, sol, m, viz[30][30], fr[30], nr[1008][30];
char a, b;
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>a>>b;
if(viz[a-'a'][a-'a']==0)
{
if(a==b)
fr[a-'a']++;
else
{
fr[a-'a']++;
fr[b-'a']++;
}
}
viz[a-'a'][b-'a']=viz[b-'a'][a-'a']=1;
}
/*sol=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<26;j++)
sol=(sol*(26-fr[j]))%104659;
}*/
for(int k=1;k<=n;k++)
{
if(k==1)
for(int i=0;i<26;i++)
nr[1][i]=1;
for(int i=0;i<26;i++)
{
for(int j=0;j<26;j++)
if(viz[i][j]==0)
{
nr[k][i]+=nr[k-1][j];
nr[k][i]%=104659;
}
if(k==n)
sol+=nr[n][i];
}
}
/*for(int i=1;i<=n;i++)
{
for(int j=0;j<26;j++)
g<<nr[i][j]<<" ";
g<<"\n";
}*/
g<<sol;
return 0;
}