欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

进阶实验 1-3.1 两个有序序列的中位数(25 分)

程序员文章站 2022-06-07 18:54:33
...

已知有两个等长的非降序序列 S1,S2,设计函数求 S1 与 S2 并集的中位数。有序序列 A​0​​,A​1,⋯,A​N−1​​ 的中位数指 AN−1)/2​​ 的值,即第【(N+1)/2】个数(A​0​​ 为第 1 个数)。

输入格式:

输入分三行。第一行给出序列的公共长度 N(0<N≤100000),随后每行输入一个序列的信息,即 N 个非降序排列的整数。数字用空格间隔。

输出格式:

在一行中输出两个输入序列的并集序列的中位数。

输入样例1:

5
1 3 5 7 9
2 3 4 5 6

输出样例1:

4

输入样例2:

6
-100 -10 1 1 1 1
-50 0 2 3 4 5

输出样例2:

1

代码:

#include<stdio.h>
#include<algorithm>
using namespace std;
int answer[8388608],i,length;
int main(){
	scanf("%d",&length);
	for(i=length*2-1;i>-1;i--)scanf("%d",answer+i);
	sort(answer,answer+length*2);
	printf("%d",answer[length-1]);
	return 0;
}

提交结果:

进阶实验 1-3.1 两个有序序列的中位数(25 分)