[BJOI2019]排兵布阵
题号:NC50755
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

小C正在玩一款排兵布阵的游戏。在游戏中有n座城堡,每局对战由两名玩家来争夺这些城堡。每名玩家有m名士兵,可以向第i座城堡派遣a_i名士兵去争夺这个城堡,使得总士兵数不超过m。
如果一名玩家向第i座城堡派遣的士兵数严格大于对手派遣士兵数的两倍,那么这名玩家就占领了这座城堡,获得i分。
现在小C即将和其他s名玩家两两对战,这s场对决的派遣士兵方案必须相同。小C通过某些途径得知了其他s名玩家即将使用的策略,他想知道他应该使用什么策略来最大化自己的总分。
由于答案可能不唯一,你只需要输出小C总分的最大值。

输入描述:

输入第一行包含三个正整数s,n,m,分别表示除了小C以外的玩家人数、城堡数和每名玩家拥有的士兵数。
接下来s行,每行n个非负整数,表示一名玩家的策略,其中第i个数a_i表示这名玩家向第i座城堡派遣的士兵数。

输出描述:

输出一行一个非负整数,表示小C获得的最大得分。
示例1

输入

复制
1 3 10
2 2 6

输出

复制
3

说明

小C的最佳策略为向第1座城堡和第2座城堡各派遣5名士兵。
示例2

输入

复制
2 3 10
2 2 6
0 0 0

输出

复制
8

说明

小C的最佳策略之一为向第1座城堡派遣2名士兵,向第2座城堡派遣5名士兵,向第3座城堡派遣1名士兵。

备注:

对于的数据,保证
对于的数据,保证
对于的数据,保证
对于另外的数据,保证s=1。
对于的数据,保证
对于每名玩家,