题目大意:有n个头的龙,砍下每个头需要啊a[i]的能量,然后有m个骑士,每个骑士对应b[i]的能量值,雇佣每个骑士花b[i]元,问最少花多少钱砍完n个头?
分析:如果一个头需要a[i]能量才能砍掉,那么如果是b[i]<a[i]就不能砍掉,而如果b[i]远远大于a[i]是没有必要的,这样会浪费能量值.
#include <bits/stdc++.h>
using namespace std;
int n,m;
const int maxn=20000+10;
int a[maxn],b[maxn];
int main(){
while(cin>>n>>m&&n){
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)cin>>b[i];
sort(a+1,a+1+n);sort(b+1,b+1+m);
int sum=0,cnt=0;
for(int i=1,j=1;i<=n&&j<=m;){
if(a[i]<=b[j]){cnt++;sum+=b[j];i++;j++;}
else j++;
}
if(cnt>=n)cout<<sum<<endl;
else cout<<"Loowater is doomed!\n";
}
return 0;
}