Cerință
Să considerăm un cub de latură , compus din celule. O celulă , conţine o valoare care poate fi ori , ori . Dorim să amplasăm în interiorul cubului două paralelipipede, astfel încât fiecare celulă cu să se afle în interiorul cel puţin unui paralelipiped. Cele două paralelipipede se pot intersecta.
Un paralelipiped este definit de intervale , , şi conţine în interiorul său toate celulele cu , şi .
Volumul paralelipipedului este
Determinaţi o amplasare a două paralelipipede care să respecte condiţiile specificate, astfel încât suma volumelor celor două paralelipipede să fie minimă.
Date de intrare
Prima linie a fişierului de intrare ppcover.in
conţine numărul de teste descrise în continuare. Prima linie a fiecărui test conţine numărul , reprezentând dimensiunea laturii cubului. Următoarele linii conţin câte caractere fiecare (plus caracterul de linie nouă la sfârşitul fiecărei linii).
A -a astfel de linie corespunde celulelor pentru care div şi mod . Al -lea caracter de pe a -a linie dintre cele corespunde valorii ; dacă caracterul este atunci şi dacă caracterul este atunci .
Date de ieșire
În fişierul de ieşire ppcover.out
veţi afişa câte o linie pentru fiecare test dat în fişierul de intrare, conţinând suma minimă a volumelor celor două paralelipipede.
Restricții și precizări
- Este permis ca paralelipipedele (unul dintre ele sau ambele) să aibă volumul .
Exemplu
ppcover.in
2
2
11
00
10
01
3
001
100
101
011
000
000
000
011
100
ppcover.out
5
22