ppcover

Time limit: 1.25s Memory limit: 64MB Input: ppcover.in Output: ppcover.out

Cerință

Să considerăm un cub de latură NN, compus din N×N×NN \times N \times N celule. O celulă (i,j,k)(i,j,k), (0i,j,kN1)(0 \leq i,j,k \leq N-1) conţine o valoare C(i,j,k)C(i,j,k) care poate fi ori 00, ori 11. Dorim să amplasăm în interiorul cubului două paralelipipede, astfel încât fiecare celulă (i,j,k)(i,j,k) cu C(i,j,k)=1C(i,j,k)=1 să se afle în interiorul cel puţin unui paralelipiped. Cele două paralelipipede se pot intersecta.

Un paralelipiped este definit de 33 intervale [a1,b1][a_1,b_1], [a2,b2][a_2,b_2], [a3,b3][a_3,b_3] şi conţine în interiorul său toate celulele (i,j,k)(i,j,k) cu a1ib1a_1 \leq i \leq b_1, a2jb2a_2 \leq j \leq b_2 şi a3kb3a_3 \leq k \leq b_3.

Volumul paralelipipedului este (b1a1+1)(b2a2+1)(b3a3+1)(b_1-a_1+1) \cdot (b_2-a_2+1) \cdot (b_3-a_3+1)

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 TT de teste descrise în continuare. Prima linie a fiecărui test conţine numărul NN, reprezentând dimensiunea laturii cubului. Următoarele N2N^2 linii conţin câte NN caractere fiecare (plus caracterul de linie nouă la sfârşitul fiecărei linii).

A LL-a astfel de linie (1LN2)(1 \leq L \leq N^2) corespunde celulelor (i,j,k)(i,j,k) pentru care i=(L1)i=(L-1) div NN şi j=(L1)j=(L-1) mod NN. Al kk-lea caracter (1kN)(1 \leq k \leq N) de pe a LL-a linie dintre cele N2N^2 corespunde valorii C(i,j,k1)C(i,j,k-1); dacă caracterul este 00 atunci C(i,j,k1)=0C(i,j,k-1)=0 şi dacă caracterul este 11 atunci C(i,j,k1)=1C(i,j,k-1)=1.

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

  • 1T401 \leq T \leq 40
  • 1N401 \leq N \leq 40
  • Este permis ca paralelipipedele (unul dintre ele sau ambele) să aibă volumul 00.

Exemplu

ppcover.in

2
2
11
00
10
01
3
001
100
101
011
000
000
000
011
100

ppcover.out

5
22

Log in or sign up to be able to send submissions!