您的位置:首页 > 其它

PAT甲级 1029. Median (25)

2017-08-02 10:57 405 查看
题目链接: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  合并 排序