随笔- 181  文章- 2  评论- 0  阅读- 6748 

Problem Description
“田忌赛马”是中国历史上一个著名的故事。

大约2300年前,齐国大将田忌喜欢和国王赛马,并且约定:每赢一场,对方就要付200元。

假设已知田忌和国王的各自马匹的速度都不相同,请计算田忌最好的结果是什么。

Input
输入包含多组测试样例。
每组样例的第一行是一个整数n(n <= 1000),表示田忌和国王各自参赛的马匹数量。
接下来一行的n个整数表示田忌的马的速度,再接下来一行的n个整数表示国王的马的速度。
n为0时,表示输入数据的结束。

Output
每组数据输出一行,表示田忌最多能够赢得的金额。

Sample input
3
92 83 71
95 87 74
2
20 19
22 18
0
Sample output
200
0

贪心,双指针

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int a[N],b[N];
int main()
{
	int n;
	while(cin>>n,n)
	{
		for(int i=0;i<n;++i) cin>>a[i];
		for(int i=0;i<n;++i) cin>>b[i];
		sort(a,a+n);sort(b,b+n);
		int res,cnt=0;
		for(int i=0,j=0;i<n&&j<n;i++)
		{
			if(a[i]>b[j]) cnt++,j++;
		}
		res=cnt*200+(cnt-n)*200;
		cout<<res<<'\n';
	}
}
 posted on   ruoye123456  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示