AcWing 1506. 中位数
原题链接
简单
作者:
leo123456
,
2020-08-29 20:54:03
,
所有人可见
,
阅读 573
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=4000020;
int n,m;
int a[N];
int idx=0;
bool cmp(int x,int y)
{
return x<y;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[idx++]);
scanf("%d",&m);
for(int i=0;i<m;i++) scanf("%d",&a[idx++]);
sort(a,a+n+m,cmp);
int k=(n+m-1)/2;
printf("%d\n",a[k]);
return 0;
}
#include<iostream>
#include<cstring>
using namespace std;
const int N=200010;
int n,m;
int a[N],b[N],c[N*2];
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
scanf("%d",&m);
for(int i=0;i<m;i++) scanf("%d",&b[i]);
int k=0,i=0,j=0;//二路归并模板
while(i<n&&j<m)
if(a[i]<=b[j]) c[k++]=a[i++];
else c[k++]=b[j++];
while(i<n) c[k++]=a[i++];
while(j<m) c[k++]=b[j++];
printf("%d\n",c[(n+m-1)/2]);
return 0;
}