Pagini recente » Cod sursa (job #1293588) | Cod sursa (job #101818) | Cod sursa (job #1156840) | Cod sursa (job #1665252) | Cod sursa (job #3316159)
#include <bits/stdc++.h>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int per[26][26],i,n,m,j;
int pos[26],sol;
int v[26][10001];
char a,b;
const int mod=104659;
int f(int k, int n){
if(v[k][n]!=0) return v[k][n];
if(n==1) return pos[k];
int sol=0;
for(int i=0;i<=25;i++){
if(per[k][i]==1) sol=(sol+f(i,n-1))%mod;
}
v[k][n]=sol;
return v[k][n];
}
int main()
{
in>>n>>m;
for(i=0;i<=25;i++){
for(j=0;j<=25;j++){
per[i][j]=1;
}
}
for(i=1;i<=m;i++){
in>>a>>b;
per[a-'a'][b-'a']=0;
per[b-'a'][a-'a']=0;
}
for(i=0;i<=25;i++){
for(j=0;j<=25;j++){
pos[i]=pos[i]+per[i][j];
}
}
for(i=0;i<=25;i++){
sol=(sol+f(i,n-1))%mod;
}
out<<sol;
return 0;
}