Loading

勇者斗恶龙 uva 11292(简单贪心)

思路:先将龙和士兵进行分别排序从小到大。然后,每次找当前最小龙的第一个大于它的骑手之后退出,开始下一个龙,重复上一次操作。

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=2e4+10;
int a[maxn], b[maxn];
int n, m;

int main(){
    while(cin>>n>>m){
            if(n+m==0)break;
        for(int i=1;i<=n;++i)cin>>a[i];
        for(int i=1;i<=m;++i)cin>>b[i];

        sort(a+1, a+n+1);
        sort(b+1, b+1+m);
        int ans=0;
        bool flag1=1;
       for(int i=1, j=1;i<=n;++i, ++j){
            bool flag2=1;
        for(;  j<=m;++j){
            if(a[i]<=b[j]){ans+=b[j];flag2=0; break;}
        }
            if(flag2){flag1=0; break;}
       }
        if(flag1)cout<<ans<<endl;
        else cout<<"Loowater is doomed!"<<endl;
    }
}

 

posted @ 2019-04-15 20:18  青山新雨  阅读(291)  评论(0编辑  收藏  举报