1029. Median (排序)

来源:互联网 发布:脚本语言python 编辑:程序博客网 时间:2024/06/04 00:56

中位数(25)

时间限制
1000毫秒
内存限制
65536 kB
代码长度限制
16000 B
判题程序
标准
作者
陈岳

给定N个整数的递增序列S,中位数是中间位置的数字。例如,S1 = {11,12,13,14}的中值为12,S2 = {9,10,15,16,17}的中值为15.两个序列的中值被定义为包含两个序列的所有元素的非减缓序列的中位数。例如,S1和S2的中位数为13。

给定两个增加的整数序列,您被要求找到它们的中位数。

输入

每个输入文件包含一个测试用例。每个案例占用2行,每个都提供一个序列的信息。对于每个序列,第一个正整数N(<= 1000000)是该序列的大小。然后N个整数跟随,由一个空格隔开。保证所有的整数都在long int范围内。

产量

对于每个测试用例,您应该输出一行中两个给定序列的中位数。

样品输入
4 11 12 13 145 9 10 15 16 17
样品输出

13

思路:排序后输出中间元素。

注意如果用cin有一个点超时,改用scanf就可以了。

下面是我的代码:

#include "bits/stdc++.h"using namespace std;int main(){    int A[2000001];    int n1;    scanf("%d",&n1);    for(int i=0;i<n1;i++)        scanf("%d",A+i);    int n2;    scanf("%d",&n2);    for(int i=0;i<n2;i++)                scanf("%d",A+n1+i);    sort(A,A+n1+n2);    printf("%d",A[(n1+n2-1)/2]);    return 0;}



原创粉丝点击