Pagini recente » Cod sursa (job #2615821) | Cod sursa (job #1961003) | Cod sursa (job #1277949) | Cod sursa (job #3203549) | Cod sursa (job #2087959)
#include <iostream>
#include<cstdio>
using namespace std;
bool comp[26][26];
long long d[1001][26];
const int Mihai_Indreias_O_Are_Sculata_Cand_Se_Uita_La_Poze_Cu_Baieti=104659;
int recurs(int i,int c){
int j;
if(i==1)
return 1;
if(d[i][c])
return d[i][c];
long long s=0%Mihai_Indreias_O_Are_Sculata_Cand_Se_Uita_La_Poze_Cu_Baieti;
for(j=0;j<26;j++){
if(comp[c][j]==false){
s+=(recurs(i-1,j)%Mihai_Indreias_O_Are_Sculata_Cand_Se_Uita_La_Poze_Cu_Baieti);
}
}
d[i][c]=s%Mihai_Indreias_O_Are_Sculata_Cand_Se_Uita_La_Poze_Cu_Baieti;
return s%Mihai_Indreias_O_Are_Sculata_Cand_Se_Uita_La_Poze_Cu_Baieti;
}
int main()
{
int i,n,m;
char c1,c2;
FILE*fin,*fout;
fin=fopen("nrcuv.in","r");
fout=fopen("nrcuv.out","w");
fscanf(fin,"%d%d ",&n,&m);
for(i=1;i<=m;i++){
fscanf(fin,"%c %c ",&c1,&c2);
comp[c1-'a'][c2-'a']=comp[c2-'a'][c1-'a']=true;
}
int s;
for(i=0;i<26;i++){
s+=recurs(n,i);
}
fprintf(fout,"%d",s);
return 0;
}