Pagini recente » Cod sursa (job #2438463) | Cod sursa (job #2075478) | Cod sursa (job #2262478) | runda/nu | Cod sursa (job #983156)
Cod sursa(job #983156)
#include<fstream>
#define MOD 104659
using namespace std;
int i, a[27][2002], c[27][27], j, n, m, k, s;
char c1, c2;
FILE*fin=fopen("nrcuv.in","r");
ofstream fout("nrcuv.out");
int main(){
fscanf(fin, "%d%d\n", &n, &m);
for(i=1; i<=m; i++){
fscanf(fin, "%c %c\n", &c1, &c2);
c[c1-'a'][c2-'a']=c[c2-'a'][c1-'a']=1;
}
for(j=0; j<=25; j++)
a[j][0]=1;
for(i=1; i<n; i++)
for(j=0; j<=25; j++){
//if(a[j][i]==0) calculez a[j][i]
//a[j][i] = nr de siruri de lumgime i care au ultimul element litera j
//formez un astfel de si din unul de lungime i-1 punand la finalul lui litera j
//am informatii despre aceste siruri pe coloana i-1;
for (k=0;k<=25;k++)
if (c[k][j] == 0) {
a[j][i] += a[k][i-1];
//a[j][i] %= MOD;
if (a[j][i] >= MOD)
a[j][i] -= MOD;
}
}
for(j=0; j<=25; j++)
s+=a[j][n-1];
fout<<s%MOD<<"\n";
return 0;
}