当前位置:编程学习 > C/C++ >>

UVa 11292 Dragon of Loowater

o(n+m)的复杂度 水
 
龙有n个头 m个骑士 能力值为x的骑士可以砍掉龙的一个半径不超过x的头 要花x的money 求最小花费砍光头 不行输出Loowater is doomed!
 
 
#include <stdio.h>  
#include <algorithm>  
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;  
}  

 

 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,