这个是原先AC的代码,但是目前最后一个样例会超内存,也就是开不了两个数组来保存两个序列了,意味着我们只能开一个数组来存,这就需要利用到两个数组都有序的性质了。
#include <iostream> #include <cstdio> #include <algorithm> #include <string.h> #include <cmath> #include <queue> using namespace std; /* 水死了 */ const int maxn=400000+5; int seq[maxn]; int main() { int n1,n2; scanf("%d",&n1); for(int i=0;i<n1;i++){ scanf("%d",&seq[i]); } scanf("%d",&n2); for(int i=0;i<n2;i++){ scanf("%d",&seq[n1+i]); } sort(seq,seq+n1+n2); int n=n1+n2; int mid; if(n%2==0){ mid=n/2; } else{ mid=n/2+1; } printf("%d\n",seq[mid-1]); return 0; }