题目背景
你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有n个头,恶龙到处杀人放火。你着急了。不过天无绝人之路,现在来了一个骑士团。里面有m位成员(往下看)
题目描述
每个人都可以砍掉一个大小不超过(<=)z的头,要money个金币,求最小花费。
输入输出格式
输入格式:第一行两个整数 n m
下接n行,一个整数 表示n个头的大小。
下接m行,每个人可以砍的头大小或金币(金币==头的大小)。
输出格式:一个整数,最小花费。如果无解,输出“you died!”
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,a,b,c,d,x[20005],y[20005],cnt,k;
int main()
{
cin>>n>>m;
for(a=1;a<=n;a++)
{
cin>>x[a];
}
for(a=1;a<=m;a++)
{
cin>>y[a];
}
sort(x+1,x+n+1);
sort(y+1,y+m+1);
k=1;
for(a=1;a<=n;a++)
{
for(b=k;b<=m;b++)
{
if(y[b]>=x[a])
{
cnt=cnt+y[b];
y[b]=-1;
k=b+1;
break;
}
}
if(b>m)
{
cout<<"you died!";
return 0;
}
}
cout<<cnt;
}