交大去中值 1097

#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]);
	   }
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值