交大去中值 1097

来源:互联网 发布:软件能力成熟度 编辑:程序博客网 时间:2024/04/29 07:53
#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int num1[1000001],num2[1000001];//int ans[2000001];//set<int> ss;int main(){   int t;   int n1,n2;//两个数组长度   int a,b,c,d;   while(scanf("%d",&t)!=EOF){ //  ss.clear();   memset(num1,0,sizeof(num1));   memset(num2,0,sizeof(num2));   for(int p = 1;p<=t;p++){       scanf("%d%d",&n1,&n2);   for(int i = 0;i<n1;i++)   scanf("%d",&num1[i]);           for(int i = 0;i<n2;i++)   scanf("%d",&num2[i]);           scanf("%d%d",&a,&b);   scanf("%d%d",&c,&d);   //cout<<a<<"  "<<b<<"  "<<c<<"   "<<d<<endl;           /*for(int i = a;i<=b;i++)   ss.insert(num1[i]);   for(int i = c;i<=d;i++)   ss.insert(num2[i]);*/   int len1 = b-a+1;   int len2 = d-c+1;   //cout<<len1<<"  "<<len2<<endl;   int len = len1+len2;           int mid = (len-1)/2;   //cout<<mid<<endl;  // cout<<"==================="<<endl;   if(mid<len1)   printf("%d\n",num1[a+mid-1]);   else   printf("%d\n",num2[mid-len1+c-1]);   /*int k,l,j;   for(k = 1,j = a;j<=b;k++,j++)           ans[k] = num1[j];   for(l = k+1,j = c;j<=d;l++,j++)           ans[l] = num2[j];   int mid = (l+1)/2;*/   //printf("%d\n",ans[mid]);   }   }}

0 0
原创粉丝点击