#175. [UVa 11292]The Dragon of Loowater
[UVa 11292]The Dragon of Loowater
题目描述
在 Loowater 王国,一条多头恶龙从河边孵化出来,开始威胁整个王国!国王非常惊慌,召集了所有骑士来斩杀恶龙,拯救王国。
恶龙有 个头,每个头有一个直径。骑士有 个,每个骑士有一个身高。
规则如下:
- 一个骑士只能砍掉一个龙头。
- 一个骑士只能砍掉直径 自己身高的龙头(即骑士身高 龙头直径 )
- 雇佣一个骑士需要支付的金币数 = 该骑士的身高
- 骑士一旦被雇佣,就只能砍一个头,不能重复使用
国王想知道:最少需要支付多少金币,才能砍掉恶龙的所有头?
如果骑士不够或没有合适的骑士能砍掉所有头,就输出 Loowater is doomed!
输入格式
输入包含多组数据,每组数据描述一个测试用例。
- 每组数据的第一行:两个整数 和 (),分别表示恶龙头数和骑士数量
- 接下来 行:每行一个整数,表示恶龙每个头的直径
- 接下来 行:每行一个整数,表示每个骑士的身高
- 输入以一行 结束(不处理这组数据)
输出格式
对于每组数据,输出一行结果:
- 如果可以砍掉所有头,输出一个整数:最少需要的金币总数。
- 如果不可能,输出字符串:Loowater is doomed!
样例1
2 3
5
4
7
8
4
2 1
5
5
10
0 0
11
Loowater is doomed!
样例解释
第一组数据:
- 龙头直径:
- 骑士身高:
- 最优方案:用身高 的骑士砍直径 的头,用身高 的骑士砍直径 的头,总金币 (身高 的骑士不用)。
第二组数据:
- 龙头直径:
- 骑士身高:
- 只有一个骑士,无法砍掉两个头 → Loowater is doomed!
数据范围与提示
- 所有直径和身高均为正整数