您的位置:首页 > 编程语言 > Go语言

UVA - 11292 - Dragon of Loowater

2018-04-08 17:07 405 查看
题目传送门#include <iostream>
#include <stdio.h>
#include <algorithm>
#define MAXN 20020
int head[MAXN];//每个头的半径
int ability[MAXN];//每个人的能力
using namespace std;
int main(void)
{
int n, m;

while (scanf("%d%d", &n, &m) != EOF && n + m)
{
int sum = 0;

for (int i = 0; i < n; i++)
scanf("%d", &head[i]);
for (int i = 0; i < m; i++)
scanf("%d", &ability[i]);
sort(head, head + n);
sort(ability, ability + m);//从小到大对头的半径和勇士的能力进行排序
int head_count = 0;//已经砍掉头的数目
for (int i = 0; i < m; i++)
{
if (ability[i] >= head[head_count])//如果可以把头砍掉就砍
{
head_count++;//砍掉一个就++
sum += ability[i];//并且雇佣金额也要增加
}
if (head_count == n)
break;//头砍完以后就立刻出来吧!!!
}
if (head_count == n)//如果头被砍完了
printf("%d\n", sum);
else
printf("Loowater is doomed!\n");
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UVa OJ ACM 贪心算法