你的国王中有一条n个头的龙,你希望雇佣一些骑士把它杀死。村里有m个骑士,且只能雇佣一次。
一个能力值为x的骑士,只能砍掉一个直径不超过x的头,
且需要支付的金币为x,如何雇佣这些骑士支付金币最少。
例子:
input:2 3
5
4
7
8
4
output:11
input:2 1
5
5
10
output:Loowater is doomed!
方法
—————————————————————————————————————————
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[20005],b[20005];
int n,m,sum=0;
int p=0;
int i,j;
cin>>n>>m;
if(n==0||m==0){
cout<<"loowater is doomed!";
}
else{
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<m;i++)
cin>>b[i];
sort(a,a+n);
sort(b,b+m);
for(j=0;j<m;j++){
if(b[j]>=a[p]){
sum+=b[p];
if(++p==n)
break;
}
}
}
if(p<n){
cout<<"loowater is doomed!";
}
else{
cout<<sum<<endl;
}
return 0;
}
网友评论