题意:
蓝皮书有。
分析:
对龙 的半径 r 骑士的能力值 k 进行排序。
然后从小到大遍历两个数组O(n+m)
#include<bits/stdc++.h>
using namespace std;
#define N 1000005
int n,m;
int c[N];
int k[N];
void Solve(){
for(int i=0;i<n;i++)scanf("%d",&c[i]);
for(int i=0;i<m;i++)scanf("%d",&k[i]);
sort(c,c+n);
sort(k,k+m);
int j=0;
int res=0;
for(int i=0;i<m;i++){
if(k[i]>=c[j])res+=k[i],j++;
if(j == n)break;
}
if(j == n){
cout<<res<<endl;
}else cout<<"Loowater is doomed!"<<endl;
}
int main(){
while(scanf("%d%d",&n,&m),n||m){
Solve();
}
}
/**
2 3
5
4
7
8
4
2 1
5
5
10
**/