Cod sursa(job #1001956)

Utilizator sorin_olimpicoolSorin Olimpicu sorin_olimpicool Data 26 septembrie 2013 17:16:41
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.18 kb
#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;
}