蓝书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=; i<n; i++)
scanf("%d",&nn[i]);
for(int i=; i<m; i++)
scanf("%d",&mm[i]); sort(nn,nn+n);
sort(mm,mm+m);
int ans = ;
int i=,j=;
for(i=; i<m; i++)
{
if(mm[i]>=nn[j])
{
ans+=mm[i];
if(++j==n) break;
}
}
if(j<n) printf("Loowater is doomed!\n");
else printf("%d\n",ans);
}
return ;
}