归并排序
#include <iostream>
using namespace std;
int a[1000001];
int b[1000001];
int main(){
int n,m,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{ int t;
scanf("%d",&t);
a[i]=t;
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
int t=0,j=0;
int mid;
if((n+m)%2==0)mid=(n+m)/2;
else
mid=(n+m)/2+1;
int flag=0;
char c;
i=0;
while(i!=n&&j!=m)
{
if(a[i]<=b[j]){c='a';flag=i;i++;t++;}
else
{c='b';flag=j;j++;t++; }
if(t==mid)
{
if(c=='a')
cout<<a[flag]<<endl;
else
cout<<b[flag]<<endl;
return 0;
}
}
if(i<n)
{
cout<<a[mid-t+i-1]<<endl;
}
if(j<m)
cout<<b[mid-t+j-1]<<endl;
return 0;
}