Pagini recente » Cod sursa (job #858052) | Cod sursa (job #1900252) | Cod sursa (job #1956952) | Cod sursa (job #193732) | Cod sursa (job #749029)
Cod sursa(job #749029)
#include <cstdio>
#include <vector>
#define MOD 104659
using namespace std;
long c[30][1001];
long g[30];
vector <long> a[30];
vector <long> :: iterator it;
int main () {
long i,n,m,j,x,y,s=0,cs,s2,k;
char ch1,ch2;
freopen ("nrcuv.in","r",stdin);
freopen ("nrcuv.out","w",stdout);
for (i=0;i<='z'-'a';i++)
c[i][1]=1;
s=26;
scanf("%ld%ld\n",&n,&m);
for (i=1;i<=m;i++) {
scanf("%c %c\n",&ch1,&ch2);
x=ch1-'a';
y=ch2-'a';
a[y].push_back(x);
a[x].push_back(y);
}
k=1;
for (i=2;i<=n;i++) {
s2=0;
for (j=0;j<='z'-'a';j++) {
cs=s;
k++;
for (it=a[j].begin();it!=a[j].end();++it)
if (g[(*it)]!=k) {
cs=(cs-c[(*it)][i-1])%MOD;
g[(*it)]=k;
}
c[j][i]=cs;
s2=(s2+cs)%MOD;
}
s=s2;
}
printf("%ld\n",s);
/* for (i=0;i<=25;i++)
printf("%ld\n",c[i][2]);*/
return 0;
}