Pagini recente » Cod sursa (job #389413) | Cod sursa (job #1870385) | Cod sursa (job #851756) | Cod sursa (job #609098) | Cod sursa (job #477842)
Cod sursa(job #477842)
#include<fstream>
using namespace std;
#define LMAX ('z'-'a'+1)
#define MOD 104659
ifstream fi("nrcuv.in");
ofstream fo("nrcuv.out");
bool a[LMAX][LMAX];
char l1,l2;
int n,m,i,j,k,rez;
int *nc,*np,*aux;
int main() {
fi>>n>>m;
while(m--) {
fi>>l1>>l2;
a[l1-'a'][l2-'a']=a[l2-'a'][l1-'a']=true;
}
nc=new int[LMAX];
np=new int[LMAX];
for(i=0;i<LMAX;++i) nc[i]=1;
for(i=2;i<=n;++i) {
aux=nc,nc=np,np=aux;
for(j=0;j<LMAX;++j) {
nc[j]=0;
for(k=0;k<LMAX;++k)
if(!a[j][k]) {
nc[j]+=np[k];
if(nc[j]>MOD) nc[j]-=MOD;
}
}
}
for(i=0;i<LMAX;++i) {
rez+=nc[i];
if(rez>MOD) rez-=MOD;
}
fo<<rez<<"\n";
return 0;
}