中位数
题目描述
给定一个有N个整数的递增序列S,中位数就是中间位置的数。例如序列S1={11,12,13,14}中12就是序列S1的中位数,又如序列S2={9,10,15,16,17}数字15就是序列S2的中位数.两个序列的中位数是指,两个序列所有元素组成的非递减序列的中位数。例如上述序列S1和S2的中位数是13.给定两个递增的整数序列,要求找出它们的中位数。
输入格式
输出包含多组测试数据(不多于10组)
每组测试数据包含两行,每一行是一个序列。每个序列的第一个数字是一个整数N(N≤1000000),表示序列的大小,接下来是N个数字。所有的数字在int范围内。
输出格式
对于每组测试数据输出一行,一个整数,表示两个序列的中位数
输入输出样列
输入样例1:
4 11 12 13 14
5 9 10 15 16 17
输出样例1:
13
【耗时限制】1500ms 【内存限制】128MB
思路:中位数不就是中间的数吗?一个分治法轻松搞定。
注意:本题为多组数据,需运用while。
上代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
int n,m,a[N],b[N],ans