代码:
#include <iostream>
#include <climits>
#include <queue>
using namespace std;
int main() {
queue<int> a, b;
int n, m, num, cnt = 0;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &num);
a.push(num);
}
a.push(INT_MAX);
scanf("%d", &m);//中间数的前一个数的顺序一定是两个序列合并后的第(n+m-1)/2个
for(int i = 0; i < m; i++) {
scanf("%d", &num);
b.push(num);
if(cnt == (n + m - 1) / 2) {
printf("%d", min(a.front(), b.front()));
return 0;
}
if(a.front() < b.front()) //小的先出队
a.pop();
else
b.pop();
cnt++;//出去的次数
}
b.push(INT_MAX);
for(; cnt < (n + m - 1) / 2; cnt++) {
if(a.front() < b.front())
a.pop();
else
b.pop();
}
printf("%d", min(a.front(), b.front()));
return 0;
}