装备购买
时间限制:1秒 内存限制:256M
【题目描述】
脸哥最近在玩一款神奇的游戏,这个游戏里有 \(n\) 件装备,每件装备有 \(m\) 个属性,用向量 \(z_i=(a_1,...,a_m)\) 表示 \((1≤i≤n, 1≤j≤m)\),每个装备需要花费 \(c_i\),现在脸哥想买一些装备,但是脸哥很穷,所以总是盘算着 怎样才能花尽量少的钱买尽量多的装备。对于脸哥来说,如果一件装备的属性能用购买的其他装备组合出(也就是 说脸哥可以利用手上的这些装备组合出这件装备的效果),那么这件装备就没有买的必要了。
严格的定义是,如果 脸哥买了 \(z_{i1},…,z_{ip}\) 这 \(p\) 件装备,那么对于任意待决定的 \(z_h\),不存在 \(b_1,…,b_p\) 使得 \(b_1z_{i1} + ... + b_pz_{ip} = z_h\)( \(b\) 是实数),那么脸哥就会买 \(z_h\),否则 \(z_h\) 对脸哥就是无用的了,自然不必购买。
举个例子,\(z_1\) =(1,2,3),\(z_2\) =(3,4,5),\(z_h\) =(2,3,4),\(b_1\) =1/2,\(b_2\) =1/2,就有 \(b_1z_1 + \)b_2z_2 = z_h\(,那么如果脸哥买了 \)z_1\( 和 \)z_2\( 就不会再买 \)z_h$ 了。
脸哥想要在买下最多数量的装备的情况下花最少的钱,你能帮他算一下吗?
【输入格式】
第一行两个数 \(n,m\)。
接下来 \(n\) 行,每行 \(m\) 个数,其中第 \(i\) 行描述装备 \(i\) 的各项属性值。
接下来一行 \(n\) 个数, 其中 \(c_i\) 表示购买第 \(i\) 件装备的花费。
【输出格式】
一行两个数,第一个数表示能够购买的最多装备数量,第二个数表示在购买最多数量的装备的情况下的最小花费。
【输入输出样例】
Input
3 3
1 2 3
3 4 5
2 3 4
1 1 2
Output
2 2
【数据限制】
对于 \(100\%\) 的数据,\(1≤n,m≤500\),\(1≤a_j≤500\)
【来源】
Mr.he**