田忌赛马c++

问题描述
你要和田忌赛马。你们各自有N匹马,并且要进行N轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。
你的马匹的速度分别为u1,4.…,田忌的马匹的速度分别为,…。田忌会按顺序派出他的马匹,请问你要如何排兵布阵,才能赢得最多轮次的
比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现平局。
输入描述
第一行一个整数 。保证1≤N≤5x104。
接下来一行N个用空格隔开的整数,依次为u1,u2…,uN,表示你的马匹们的速度。保证1≤u:S2N。
接下来一行N个用空格隔开的整数,依次为V1,V..…,,表示田忌的马匹们的速度。保证1≤v:S2N。
输出描述
输出一行,表示你最多能获胜几轮。
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
样例输入 1
3
135
2 4 6
样例输出 1

2

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int a[N], t;
int b[N], h;
int n;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
  }
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &b[i]);
  }
  h = 1;
  t = 0;
  sort(a + 1, a + n + 1);
  sort(b + 1, b + n + 1);
  int ans = 0;
  for (int i = 1; i <= n; ++i)
    if (a[i] > b[h])
      ++ans, ++h;
  printf("%d\n", ans);
  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值