F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Drink

Time 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
2 3 1 1 1 012 102 201 3 1 1 1 012 012 012
 

Sample Output
9 6
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-22 08:45:48, Gzip enabled