UVa 11292 Dragon of Loowater

2014-11-24 00:56:16 · 作者: · 浏览: 1
o(n+m)的复杂度 水
龙有n个头 m个骑士 能力值为x的骑士可以砍掉龙的一个半径不超过x的头 要花x的money 求最小花费砍光头 不行输出Loowater is doomed!
#include   
#include   
using namespace std;  
int a[20010];  
int b[20010];  
int main()  
{  
    int n,m,i,j,sum;  
    while(scanf("%d %d",&n,&m),n||m)  
    {  
        for(i = 0;i < n; i++)  
            scanf("%d",&a[i]);  
        for(j = 0;j < m; j++)  
            scanf("%d",&b[j]);  
        sort(a,a+n);  
        sort(b,b+m);  
        i = j = sum = 0;  
        while(i < n && j < m)  
        {  
            if(a[i] <= b[j])  
            {  
                sum += b[j];  
                i++;  
                j++;  
            }  
            else  
                j++;  
        }  
        if(i == n)  
            printf("%d\n",sum);  
        else  
            puts("Loowater is doomed!");  
    }  
    return 0;  
}