题目链接:https://www.patest.cn/contests/pat-a-practise/1029
题目大意: S1和S2为两个递增数列,求将两个数列合并后的非递减序列的中位数
解题思路:定义一个大的数组buf[],将S1和S2都保存到buf[]中,然后将buf[]排序,即可很容易得到中位数
代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(int argc, char const *argv[])
{
int buf[2000000],cnt=0,N1,N2;
cin>>N1;
for(int i=0;i<N1;i++)
scanf("%ld",&buf[cnt++]);
cin>>N2;
for(int i=0;i<N2;i++)
scanf("%ld",&buf[cnt++]);
sort(buf,buf+cnt);
cout<<buf[(cnt-1)/2]<<endl;
return 0;
}