#include<algorithm>
#include<cctype>
#include<cstdio>
using namespace std;
const int maxn = 20005;
int N[maxn], M[maxn];
int buffer[10];
int n, m;
void scan_d(int &x) {
char ch = getchar();
while(!isdigit(ch)) ch = getchar();
x = 0;
do {
x = x * 10 + ch - '0';
ch = getchar();
}while(isdigit(ch));
}
void print_d(int x) {
if(x == 0) putchar('0');
else {
int p = 0;
while(x) {
buffer[p++] = x % 10 + '0';
x /= 10;
}
for(int i = p-1; i >= 0; i--) putchar(buffer[i]);
}
putchar('\n');
}
int main() {
while(scanf("%d%d", &n, &m) == 2 && n && m) {
for(int i = 0; i < n; i++) scan_d(N[i]);
for(int i = 0; i < m; i++) scan_d(M[i]);
sort(N, N+n);sort(M, M+m);
int cur = 0; //变量什么时候需要用就什么时候定义
int cost = 0;
for(int i = 0; i < m; i++) //一共有m个骑士 能力是从小到打排列的
if(M[i] >= N[cur]) { // 如果骑士的能力大于或者等于这个头数
cost += M[i]; //那么久算上这个花费
if(++cur == n) break;
}
if(cur < n) printf("Loowater is doomed!\n");
// cur < n 就说明 骑士已经用完了
else print_d(cost);
}
return 0;
}
HDU_1902
最新推荐文章于 2024-07-06 00:20:02 发布