题目看错,一直以为是题目出错,没有仔细看样例,我简直就是傻逼啊啊啊啊,重复的数字不能重复出现。。最后几分钟没改回来,怪自己傻,脑子转的慢,敲代码也慢。
以下代码是后来5分钟改完的,不一定正确。
#include<iostream> #include<cstdio> #include<cstring> #include<set> #include<stack> #include<cctype> #include<algorithm> #include<vector> #define M 1002 using namespace std; int a[10000],b[10000],c[10000]; int main() { double ans; int i,j,n,m; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>n; for(i=0;i<n;++i){ cin>>a[i]; } cin>>m; for(i=0;i<m;++i){ cin>>b[i]; } int mid=0; int cc=0; i=j=0; while(cc<n+m){ if(i>=n){ if(j>=m) break; c[cc++]=b[j++]; }else if(j>=m){ if(i>=n) break; c[cc++]=a[i++]; }else{ if(a[i]>b[j]){ c[cc++]=b[j++]; }else if(a[i]==b[j]){ c[cc++]=a[i++]; ++j; }else{ c[cc++]=a[i++]; } } } // cout<<cc<<endl; if(cc%2==0){ ans=1.0*(c[cc/2-1]+c[cc/2])/2; }else{ ans=c[cc/2]; } cout<<ans<<endl; return 0; }