// C++ 代码 #include #include

using namespace std;

const int N = 100010;

int n; int a[N], b[N];

int main() { cin >> n; for(int i = 0; i < n; i++) scanf("%d", &a[i]); for(int i = 0; i < n; i++) scanf("%d", &b[i]);

int i = 0, j = 0;
int k = n - 1;
while(i < n && j < n)
{
    if(a[i] < b[j]) a[k--] = b[j++];
    else a[k--] = a[i++];
}
while(i < n) a[k--] = a[i++];
while(j < n) a[k--] = b[j++];

printf("%d\n", a[n - 1 >> 1]);

return 0;
已知有两个等长的非降序序列S1 S2 设计函数求S1与S2并集的中位数。有序序列A0A1⋯AN-1的中位数指AN−12的值即第N+12个数A0为第1个数。输入格式输入分三行。第一行给出序列的公共长度N0N≤100000随后每行输入一个序列的信息即N个非降序排列的整数。数字用空格间隔。输出格式在一行中输出两个输入序列的并集序列的中位数。输入样例151 3 5 7 92 3 4 5 6输出样例14输入

原文地址: https://www.cveoy.top/t/topic/cKi6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录