ldq结婚之考验

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

“今天你就要嫁人了……”
    没错,今天是 ldq 和 lq 的大喜日子。但是呢妹子 ldq 的好友 Foxz 太贪玩了,这一次也没有例外。所以在这一次 Foxz 出了一个难题给 lq,要是他能解决的话他就能把 ldq 娶回家。
    首先 Foxz 分 n 次,每次给 lq 五张扑克牌(每五张牌为一组,一次给一组)。然后 ldq 可以从这么多的牌中选 m 组牌。根据牌的不同类型可以得到不同的分数,那么 lq 最多能得多少分呢?你能帮他计算出他最大能的多少分?帮他解决这个问题他就可以把 ldq 娶回家了,那样的话他会把一个 AC 作为答谢送给你的。
    每组扑克牌的类型及相应的得分:

  1. 如果 5 张扑克牌能组成皇家同花顺,那么将获得 70 分(皇家同花顺指花色相同、值是连续的并且最大值的牌的值为 13 的五张牌)
  2. 如果 5 张扑克牌能组成小同花顺,那么将获得 50 分(小同花顺指花色相同、值是连续的五张牌)
  3. 如果 5 张扑克牌能组成顺子,那么将获得 45 分(顺子指花色相同的五张牌)
  4. 如果 5 张牌能组成葫芦,那么将获得 20 分(葫芦指 5 张牌中其中有 3 张的值相同,另外的两张的牌的值也相同)
  5. 其他的情况能得到 10 分

Input

输入数据有多组(数据组数不超过 100),到EOF结束。
每组数据包含多行:

  1. 每组数据输入的第一行,包含两个整数 n 和 m (1 <= n <= 100, 1 <= m <= n)
  2. 接下来有 n 行(从 2 到 n+1 行),每行 5 个整数 a, b, c, d, e (1 <= a, b, c, d, e <= 13),代表每张扑克牌上的值(保证相同花色的不会同时在一组里出现 5 张)
  3. 接下来有 n 行(从 n+2 到 2n+1 行),每行 5 个整数 v, w, x, y, z (0 <= v, w, x, y, z <= 3),代表每张扑克牌上的花色

Output

每组输出一个整数,代表 lq 能获得的最大的分数。

Sample Input

6 3
13 12 11 10 9
4 3 5 7 6
4 4 4 3 3
3 2 9 10 8
7 7 7 3 3
3 5 7 2 6
1 1 1 1 1
2 2 2 2 2
0 1 2 3 0
0 1 2 3 0
3 3 3 3 3
0 0 0 0 0

Sample Output

165

Hint

「值是连续的」指将一组牌按值排序后,相邻两张牌的值都相差 1,如:3, 4, 5, 6, 7。

如果一组牌有不止一种类型,那么按能获得的最高分数来计算。

Source

【第六届ACM趣味编程循环赛 Round #1】Foxz