九度1097:取中值
- 题目来源:
题目1097:取中值
注意:中值不需要排序
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int s1[1000001];
int s2[1000001];
int main(){
int n;
while(scanf("%d", &n)!=EOF){
while(n--){
int len1,len2;
scanf("%d%d", &len1,&len2);
//int *s1 = (int *)malloc(sizeof(int)*len1);
//int *s2 = (int *)malloc(sizeof(int)*len2);
for(int i=0; i<len1; i++){
scanf("%d", &s1[i]);
}
for(int i=0; i<len2; i++){
scanf("%d", &s2[i]);
}
int a,b,c,d;
scanf("%d%d%d%d", &a, &b, &c, &d);
int ans;
int n1 = b-a+1;
int n2 = d-c+1;
int p = (n1+n2-1)/2;
if (p<n1) {
p = p+a-1;
printf("%d\n", s1[p]);
}
else{
p = p-n1+c-1;
printf("%d\n", s2[p]);
}
}
}
return 0;
}

1652

被折叠的 条评论
为什么被折叠?



