luogu#P11409. 西湖有雅座

西湖有雅座

题目背景

江湖路上走走停停,翻开年少漂泊的回忆。 如今走过这世间,万般留恋,风吹起了从前 。

题目描述

孙亦谐准备建西湖雅座来开饭馆。

他有 nn 个零件,零件的大小均为 h×wh\times w。零件从 1n1 \sim n 编号。

对于一个大小为 h×wh \times w 的零件,其可视为一个 hhww 列的矩阵 ww。若用 ai,ja_{i,j} 来表示这个矩阵中第 ii 行第 jj 列的元素。对于 ai,j\forall a_{i,j},都有 ai,j{0,1}a_{i,j}\in \left \{ 0,1\right \}

则编号为 ii 的零件的面积为: $S\left(i\right) = \sum_{i = 1}^{h}\sum_{j = 1}^{w}a_{i,j} $。

若编号为 llrr 的两个零件的分别表示为矩阵 aabb,其在同一座楼的稳固程度可表示为:

$$f\left(l,r\right) = \sum_{i = 1}^{h} \sum_{j = 1}^{w} \left [ (a_{i,j} = 1) \text{ and } (b_{i,j} = 1) \right ] $$

孙亦谐需要将这 nn 个零件先选取若干个按照任意顺序排列搭成大楼,然后把剩余的零件搭成小楼。若没有剩余零件,则可以不搭小楼。

UU 表示某座楼选取的零件编号的集合,则这座楼能成功搭建的条件是:

$$\forall i,j \in U,f\left (i,j\right) \ge \lceil \frac{ \min \left ( S\left(i \right),S\left(j\right) \right) }{2}\rceil $$

孙亦谐想知道在保证两座楼能成功搭建的条件下,让大楼使用的零件数尽量多。若无法成功搭建,则直接输出 -1

输入格式

第一行输入包含三个正整数 n,h,wn,h,w,分别表示零件的个数、零件的行数、零件的列数。

接下来输入 nn 个零件所表示的矩阵。

对于每个零件的矩阵 aa,输入的格式如下:

共输入 hh 行,每行 ww 个元素。

ii 行第 jj 列的元素 ai,ja_{i,j},表示这个矩阵中第 ii 行第 jj 列的元素。

输出格式

输出一个整数,表示在搭建成功的情况下,大楼最多能使用多少个零件。若无法成功搭建,则直接输出 -1

3 2 2
0 1 
1 1
1 0
0 0
0 1
0 1
2
3 2 2
0 1
1 0
0 0
0 1
1 0
0 0

-1

提示

【样例1解释】

可以证明最优方案是用第一个零件和第三个零件搭大楼,用第二个零件搭小楼。

【数据范围】

本题采用捆绑测试

  • Subtask 1(30 points):n20n \le 20
  • Subtask 2(5 points):w=h=1w = h = 1
  • Subtask 3(65 points):无特殊限制。

对于所有测试数据,1n10001 \le n \le 10001w,h61 \le w,h \le 6