UVa(11292),贪心水题

蓝书P1,

很简单的一个贪心选择,用能力小的去砍小的。本来想双重循环,哎,傻逼了,直接遍历选手,碰到能砍的就砍掉。

#include <stdio.h>
#include <algorithm>

using namespace std;

#define MAXN 20005

int n,m;
int nn[MAXN],mm[MAXN];

int main()
{
    freopen("input.txt","r",stdin);
    while(scanf("%d%d",&n,&m),n+m)
    {
        for(int i=0; i<n; i++)
            scanf("%d",&nn[i]);
        for(int i=0; i<m; i++)
            scanf("%d",&mm[i]);

        sort(nn,nn+n);
        sort(mm,mm+m);
        int ans = 0;
        int i=0,j=0;
        for(i=0; i<m; i++)
        {
            if(mm[i]>=nn[j])
            {
                ans+=mm[i];
                if(++j==n) break;
            }
        }
        if(j<n) printf("Loowater is doomed!
");
        else printf("%d
",ans);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/TreeDream/p/5803951.html