简单题, 基本的2-mergesort,空间复杂度大,没有优化可以水过。
long a[1000001],b[1000001],c[2000002];
void _sort(long a[],int n1,long b[],int n2,long c[])
{
int i=0,j=0,k=0;
for(;i<n1&&j<n2;){
if(a[i] < b[j]) c[k++] = a[i++];
else if(a[i] == b[j]){
c[k++] = a[i++]; c[k++] = b[j++];
}
else c[k++] = b[j++];
}
for(;i<n1;) c[k++] = a[i++];
for(;j<n2;) c[k++] = b[j++];
}
int main()
{
//freopen("in","r",stdin);
long n1,n2;
while(scanf("%ld",&n1)!=EOF){
int i;
for(i=0;i<n1;i++) scanf("%ld",&a[i]);
scanf("%ld",&n2);
for(i=0;i<n2;i++) scanf("%ld",&b[i]);
_sort(a,n1,b,n2,c);
printf("%ld\n",c[(n1+n2-1)/2]);
}
return 0;
}