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