https://www.luogu.org/problem/show?pid=2695
题目背景
你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有n个头,恶龙到处杀人放火。你着急了。不过天无绝人之路,现在来了一个骑士团。里面有m位成员(往下看)
题目描述
每个人都可以砍掉一个大小不超过(<=)z的头,要money个金币,求最小花费。
输入输出格式
输入格式:
第一行两个整数 n m
下接n行,一个整数 表示n个头的大小。
下接m行,每个人可以砍的头大小或金币(金币==头的大小)。
输出格式:
一个整数,最小花费。如果无解,输出“you died!”
输入输出样例
输入样例#1:
2 3 5 4 7 8 4
输出样例#1:
11
说明
1<=n,m<=20000
不可以多个人砍一个头~~
1 #include <algorithm> 2 #include <cstdio> 3 4 using namespace std; 5 6 const int N(20000+15); 7 int n,m,size[N],kill[N]; 8 int ans,cnt=1; 9 10 int main() 11 { 12 scanf("%d%d",&n,&m); 13 for(int i=1;i<=n;i++) scanf("%d",size+i); 14 for(int i=1;i<=m;i++) scanf("%d",kill+i); 15 sort(size+1,size+n+1); 16 sort(kill+1,kill+m+1); 17 for(int i=1;i<=m;i++) 18 if(kill[i]>=size[cnt]) 19 { 20 ans+=kill[i]; 21 if(++cnt>n) break; 22 } 23 if(cnt<=n) printf("you died!"); 24 else printf("%d",ans); 25 return 0; 26 }
时间: 2024-11-07 08:23:47