Pagini recente » Cod sursa (job #1998517) | Cod sursa (job #3032980) | Cod sursa (job #3285627) | Cod sursa (job #2188115) | Cod sursa (job #1001956)
#include<stdio.h>
#include<string.h>
bool nepotrivire[30][30];
int contor_par[30];
int contor_impar[30];
int main()
{
int n,k,i,j,m;
char ch1,ch2;
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
scanf("%d%d\n",&n,&m);
k = m;
while(k--)
{
scanf("%c %c\n",&ch1,&ch2);
nepotrivire[ch1-'a'+1][ch2-'a'+1] = true;
nepotrivire[ch2-'a'+1][ch1-'a'+1] = true;
}
for (int i = 0; i < litere; i++) {
contor_impar[i] = 1;
}
for (int k = 1; k < m; k++) {
if (k % 2 == 0) {
if (k > 0) {
memcpy(contor_par,contor_impar,sizeof(contor_par));
}
for (int i = 0; i < litere; i++) {
contor_impar[i] = 0;
}
for (int i = 0; i < litere; i++) {
for (int j = 0; j < litere; j++) {
if (!nepotrivire[i][j]) {
contor_impar[j] += contor_par[i];
}
}
}
} else {
if (k > 1) {
memcpy(contor_impar,contor_par,sizeof(contor_impar));
}
for (int i = 0; i < litere; i++) {
contor_par[i] = 0;
}
for (int i = 0; i < litere; i++) {
for (int j = 0; j < litere; j++) {
if (!nepotrivire[i][j]) {
contor_par[j] += contor_impar[i];
}
}
}
}
}
if (m % 2 == 0) {
for (int i = 0; i < litere; i++) {
sum += contor_par[i];
}
} else {
for (int i = 0; i < litere; i++) {
sum += contor_impar[i];
}
}
printf("%d",sum);
return 0;
}