Module: Itera su tutti i sottopattern di una data maschera


Problem

7 /7


Bessie si è vendicata

Problem

Il contadino John e la mucca Besi adorano scambiarsi puzzle matematici nel loro tempo libero. L'ultimo puzzle che FD ha dato a Besie era piuttosto difficile e Besie non è riuscito a risolverlo. Ora vuole dare a FD un puzzle molto difficile.

Besi fornisce un'espressione FD  (B+E+S+S+I+E)(G+O+E+S)(M+O+O), contenente sette variabili B,E , S,I,G,O,M ("O" è una variabile, non 0). Per ogni variabile, fornisce all'FD un elenco di un massimo di 20 numeri interi che questa variabile può accettare. Besi chiede all'FD di contare il numero di modi diversi per assegnare valori alle variabili in modo che l'espressione calcolata sia un numero pari.

Input

La prima riga di input contiene un numero intero N. Ognuna delle N righe seguenti contiene una variabile e un possibile valore per tale variabile. Ogni variabile apparirà in questo elenco almeno una volta e al massimo 20 volte. Per la stessa variabile, tutti i valori dati sono diversi. Tutti i valori vanno da −300 a 300.

Uscita

Stampa un singolo numero intero che specifica il numero di modi in cui FD può assegnare valori alle variabili in modo che l'espressione dia un risultato pari.

 

Input Uscita
10
B2
E 5
S7
io 10
O 16
M19
B3
G1
Io 9
M2
6
 

Ci sono 6 possibili opzioni per assegnare valori alle variabili:

 

(B,E,S,I,G,O,M) = (2, 5, 7, 10, 1, 16, 19) -> 53.244
                = (2, 5, 7, 10, 1, 16, 2) -> 35.496
                = (2, 5, 7, 9, 1, 16, 2) -> 34.510
                = (3, 5, 7, 10, 1, 16, 2) -> 36.482
                = (3, 5, 7, 9, 1, 16, 19) -> 53.244
                = (3, 5, 7, 9, 1, 16, 2) -> 35.496

Notare che (2,5,7,10,1,16,19) e (3,5,7,9,1,16,19) sono trattati come assegnazioni diverse anche se danno lo stesso risultato.< /p>