B3928 [GESP202312 四级] 田忌赛马

#include<bits/stdc++.h>
using namespace std;
const int N=5e4+5;
int  n,cnt;
int a[N],b[N];
//作业:手动实现快读读入   1234  5ac5wa6789 
//朴素的正整数快读     
inline int read(){
	char c;//利用字符c 和 getchar处理输入的数据 
	int x=0;//待返回的整数 
	c=getchar(); //读入输入流中一个字符给c
	while(c<'0'||c>'9') c=getchar();   
	//循环结束c中读入的是什么? 数字的第一个字符 
	// '0'的ascii就是48  ‘9’-‘0’=9 
	while(c>='0'&&c<='9'){
		x=x*10+c-48; // 过程实例:0*10+'1'-48=1   1*10…… 
		c=getchar(); 
	} 
	return x;
} 

int main(){
	n=read();
	for(int i=0;i<n;i++)
		a[i]=read();
	for(int i=0;i<n;i++)
		b[i]=read();
	sort(a,a+n);
	sort(b,b+n);
	int i=n-1,j=n-1;//指针i和j分别指向a和b的最大值
	while(j>=0){
		//比较当前剩下的最快马
		if(a[i]>b[j]) cnt++,i--,j--;//如果能赢,就各自消耗最快的马进行比赛 
		else j--;//否则,意味着当前田忌的最快马我赢不了,故保留我的最快马,并消耗田忌的最快马 
	} 
	cout<<cnt;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值