问题 1991 --Median

1991: Median

时间限制: 1 Sec  内存限制: 32 MB
提交: 58  解决: 17
[提交][状态][讨论版][数据上传:][下载FPS1元][下载测试数据1元][788kb]

题目描述

Given an increasing sequence S of N integers, the median is the number at the middle position. For example, the median of S1={11, 12, 13, 14} is 12, and the median of S2={9, 10, 15, 16, 17} is 15. The median of two sequences is defined to be the median of the non-decreasing sequence which contains all the elements of both sequences. For example, the median of S1 and S2 is 13.
     Given two increasing sequences of integers, you are asked to find their median.


输入

Each input file may contain more than one test case.
     Each case occupies 2 lines, each gives the information of a sequence. For each sequence, the first positive integer N (≤1000000) is the size of that sequence. Then N integers follow, separated by a space.
     It is guaranteed that all the integers are in the range of long int.


输出

For each test case you should output the median of the two given sequences in a line.


样例输入

4 11 12 13 14
5 9 10 15 16 17

样例输出

13

提示



本题需要解决的问题是给定两个有序序列,求出这两个序列合并在一起以后中间的那个值。由于两个序列都是有序的,自然我们会想到归并排序的归并过程。于是问题迎刃而解了。


解题步骤:


1)读入两个有序序列的值;


2)计算中间值得位置;


3)定位中间值;


4)输出结果。


需要注意的是两个序列的元素都非常多。因而可以考虑用全局变量来存储:定义在函数中的局部变量存储在系统的栈当中,全局变量或静态变量则存储在堆当中。栈的存取比堆快,但栈的空间少于堆。


来源

[提交][状态]