骑士的工作

题目背景

你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有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;
}  


原文地址:https://www.cnblogs.com/ztz11/p/9189976.html