UVA 11292 The Dragon of Loowater 英文略长略长

UVA 11292 The Dragon of Loowater

其实很水的。。。看题目花的时间比写的时间更久。
题意是 一个龙有n个头 头都有直径 有m个骑士 骑士有身高 如果身高超过直径 骑士就能砍下龙头 一个骑士只能砍一个头 国王雇佣骑士 价格是骑士的身高 求国王最少要多少钱才能杀掉龙 如果杀不掉 就输出 Loowater is doomed!

贪心思想,直接骑士和龙头都从小到大排,从最小的骑士开始选去砍龙头。。

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;

const int MAXN = 20005;

int n, m, d[MAXN], k[MAXN], ans;

void init() {
    ans = 0;
    for (int i = 0; i < n; i ++)
	scanf("%d", &d[i]);
    for (int i = 0; i < m; i ++)
	scanf("%d", &k[i]);
}

void solve() {
    init();
    sort(d, d + n);
    sort(k, k + m);
    int j = 0;
    for (int  i = 0; i < m; i ++) {
	if (k[i] >= d[j]) {
	    ans += k[i];
	    j ++;
	    if (j == n) {
		printf("%d\n", ans);
		return;
	    }
	}
    }
    printf("Loowater is doomed!\n");
}

int main() {
    while (~scanf("%d%d", &n, &m) && n + m) {
	solve();
    }
    return 0;
}





你可能感兴趣的:(UVA 11292 The Dragon of Loowater 英文略长略长)