uva 11292 智者斗恶龙

这是一道训练思维的水题,先把所有的智者和恶龙sort一下,从智者开始循环,如果最小的智者可以砍掉当前最弱的恶龙,恶龙就++ 花费的金额就加这个智者所花的钱

如果到最后恶龙全被砍死就是可以满足输出的情况,以下是代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 20000 + 10;
int n, m;
int x[maxn],y[maxn];

int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        if(n==0&&m==0)break;
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        for(int i =0 ; i< n; i++)
            scanf("%d",&x[i]);
        for(int i =0 ; i < m; i++)
            scanf("%d",&y[i]);
        int len1 = 0,len2 = 0;
        sort(x,x+n);sort(y,y+m);
        for(int i = 0 ; i < m ; i++)
        {
            if(y[i]>=x[len1])
                len1++,len2 += y[i];
            if(len1>=n)break;
        }
        if(len1>=n)
        {
            printf("%d\n",len2);
        }
        else
        {
            printf("Loowater is doomed!\n");
        }

    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/h201601060805/article/details/77931935