Pagini recente » Cod sursa (job #2002124) | Cod sursa (job #1851840) | Cod sursa (job #819540) | Cod sursa (job #166843) | Cod sursa (job #267614)
Cod sursa(job #267614)
#include <cstdio>
#include <cstring>
#define Sigma 26
#define MOD 104659
char C[Sigma][Sigma];
int Ant[Sigma], Act[Sigma];
int N, M;
int main()
{
freopen("nrcuv.in","rt",stdin);
freopen("nrcuv.out","wt",stdout);
scanf("%d %d",&N, &M);
while(M--)
{
char x, y;
scanf(" %c %c",&x, &y);
C[x - 'a'][y - 'a'] = C[y - 'a'][x - 'a'] = 1;
}
for(int i = 0; i < 26; ++i)
Act[i] = Ant[i] = 1;
for(int i = 1; i < N; ++i)
{
memset(Act, 0, sizeof Act);
for(int j = 0; j < 26; ++j)
for(int k = 0; k < 26; ++k)
if(C[k][j] == 0)
Act[j] = (Act[j] + Ant[k]) % MOD;
memcpy(Ant, Act, sizeof Act);
}
int S = 0;
for(int i = 0; i < 26; ++i)
S = (S + Act[i]) % MOD;
printf("%d\n",S);
}