网站seo平台,专业网站建设排名,药品包装设计,建设工程人力资源网查询平台题干#xff1a;
题目大意#xff1a;
n条恶龙#xff0c;m个勇士#xff0c;用勇士来杀恶龙。一个勇士只能杀一个恶龙。而且勇士只能杀直径不超过自己能力值的恶龙。每个勇士需要支付能力值一样的金币。问杀掉所有恶龙需要花费的最少金币。
解题报告#xff1a; twopo…题干
题目大意
n条恶龙m个勇士用勇士来杀恶龙。一个勇士只能杀一个恶龙。而且勇士只能杀直径不超过自己能力值的恶龙。每个勇士需要支付能力值一样的金币。问杀掉所有恶龙需要花费的最少金币。
解题报告 twopointer排序后从头到尾扫一遍就行了。
AC代码
#includecstdio
#includeiostream
#includealgorithm
#includequeue
#includemap
#includevector
#includeset
#includestring
#includecmath
#includecstring
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX 2e5 5;
int a[MAX],b[MAX];
int n,m;
int main()
{while(~scanf(%d%d,n,m)) {//n个头 m个勇士 if(n 0 m 0 ) break;for(int i 1; in; i) scanf(%d,ai);for(int i 1; im; i) scanf(%d,bi);//勇士 sort(a1,an1);sort(b1,bm1);int ans 0;int flag 1;int i,j;for(i 1,j1; in; i) {while(b[j] a[i] j m) j;if(j m) {flag 0;break;}ans b[j];j;}if(in || flag 0) puts(Loowater is doomed!);else printf(%d\n,ans);}return 0 ;}