时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
田忌和齐王赛马,两人各有n匹马,输入第1行是田忌赛马速度,第2行是齐王的,分别是两个无序正整数组给出。齐王的赛马出场顺序总是从快到慢,问:田忌合理安排顺序后,最多能赢机场比赛?(注意:速度相同不算赢)
输入
两行,每行一个数组
输出
数字表示田忌能赢的场数
样例输入
3 1 5
6 2 4
样例输出
2
解题思路:两个数组排序之后,齐王的马从快到慢,齐王每出场一匹马,如果田忌最快的马比它快答案++,去掉这匹马否则反正都赢不了,把田忌最慢的马剔除掉。
#include <iostream>
#include <algorithm>
using namespace std;
const int Maxn = 1005;
int main()
{
int c[2*Maxn];
int count = 0;
while(cin >> c[count++]);
count--;
int first = 0, second = count/2, j = count-1;
sort(c, c+second);
sort(c+second, c+count);
int ans = 0;
second--;
while(j>=count/2)
{
if(c[j]>=c[second])
first++;
else
{
ans++;
second--;
}
j--;
}
cout << ans << endl;
return 0;
}
/*
3 1 5
6 2 4
*/