孙亦谐准备建西湖雅座来开饭馆。
他有 n 个零件,零件的大小均为 h \times w。零件从 1 \sim n 编号。
对于一个大小为 h \times w 的零件,其可视为一个 h 行 w 列的矩阵 a。若用
a_{i,j} 来表示这个矩阵中第 i 行第 j 列的元素。对于
\forall a_{i,j},都有
a_{i,j} \in {0, 1}。
则编号为 i 的零件的面积为:
S(i) = \sum_{i=1}^{h}
\sum_{j=1}^{w}
a_{i,j}
若编号为 l 和 r 的两个零件分别表示为矩阵 a 和 b,其在同一座楼的稳固程度可表示为:
f(l, r) = \sum_{i=1}^{h}
\sum_{j=1}^{w}
[ (a_{i,j} = 1)
\text{ and }(b_{i,j} = 1) ]
孙亦谐需要将这 n 个零件先选取若干个按照任意顺序排列搭成大楼,然后把剩余的零件搭成小楼。若没有剩余零件,则可以不搭小楼。
设 U 表示某座楼选取的零件编号的集合,则这座楼能成功搭建的条件是:
\forall i, j \in U, \quad f(i, j) \ge \left\lceil \frac{\min(S(i), S(j))}{2} \right\rceil
孙亦谐想知道在保证两座楼能成功搭建的条件下,让大楼使用的零件数尽量多。若无法成功搭建,则直接输出 -1。