[GESP202312 四级] 田忌赛马

题目描述

你要和田忌赛马。你们各自有 𝑁N 匹马,并且要进行 𝑁N 轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。

你的马匹的速度分别为 𝑢1,𝑢2,⋯,𝑢𝑛u1​,u2​,⋯,un​,田忌的马匹的速度分别为 𝑣1,𝑣2,⋯ ,𝑣𝑛v1​,v2​,⋯,vn​。田忌会按顺序派出他的马匹,请问你要如何排兵布阵,才能赢得最多轮次的比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现平局。

输入格式

第一行一个整数 𝑁N。保证 1≤𝑁≤5×1041≤N≤5×104

接下来一行 𝑁N 个用空格隔开的整数,依次为 𝑢1,𝑢2,⋯ ,𝑢𝑛u1​,u2​,⋯,un​,表示你的马匹们的速度。保证 1≤𝑢𝑖≤2𝑁1≤ui​≤2N。

接下来一行 𝑁N 个用空格隔开的整数,依次为 𝑣1,𝑣2,⋯ ,𝑣𝑛v1​,v2​,⋯,vn​,表示田忌的马匹们的速度。保证 1≤𝑣𝑖≤2𝑁1≤vi​≤2N。

输出格式

输出一行,表示你最多能获胜几轮。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=5e4+1;
int n,arr[N],brr[N],num;
int main() {
	cin>>n;
	for(int i=0; i<n; i+=1) {
		cin>>arr[i];
	}
	for(int i=0; i<n; i+=1) {
		cin>>brr[i];
	}
	sort(arr,arr+n);
	sort(brr,brr+n);
	for(int i=0,j=0; i<n; i+=1) {
		if(arr[i]>=brr[j]) {
			j+=1,num+=1;
		}
	}
	cout<<num;
	return 0;
}

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值