|
||||||||||
DrinkTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 314 Accepted Submission(s): 108 Problem Description 一共有 $n$ 个人,我们提供给他们三种饮料——可乐,雪碧,芬达。 每个人对这三种饮料的喜欢程度有一个顺序,一个人喝到他最喜欢的饮料可以得到 3 点快乐值,第二喜欢的饮料可以得到 2 点快乐值,第三喜欢的饮料可以得到 1 点快乐值。 我们一共有 $n$ 瓶饮料,其中 $a$ 瓶是可乐,$b$ 瓶是雪碧,$c$ 瓶是芬达,每个人恰好分到一瓶饮料。请问适当分配这些饮料, $n$ 个人的快乐值的和最大是多少? Input 第一行输入一个整数 $T(2 \leq T \leq 1000)$ 表示 $T$ 组数据。 每组数据第一行 4 个整数,$n, a, b, c(n, a, b, c \geq 0)$ 分别表示人数,有 $a$ 瓶可乐,$b$ 瓶雪碧,$c$ 瓶芬达。保证 $a+b+c=n$。 接下来 $n$ 行,每行输入一个长度为 3 的字符串,第 $i$ 行表示第 $i$ 个人从高到低喜好的顺序。 字符串一定是 `{"012","021","102","120","201","210"}` 中的一种。字符 0 表示可乐,1 表达雪碧,2 表示芬达,按照最喜欢,第二喜欢,第三喜欢的顺序排列。例如 021 表示最喜欢可乐,第二喜欢芬达,第三喜欢雪碧。 保证 $n$ 之和小于等于 100000。 Output 对于每组数据,一行一个整数表示答案。 Sample Input
Sample Output
Source | ||||||||||
|