#include<iostream>
#include<stdio.h>
using namespace std;
#define C 50
#define D 50
int M_search(int A[], int B[], int n){
int s1=0, d1=n-1, m1;
int s2=0, d2=n-1, m2;
while(s1 != d1 || s2 != d2){
m1 = (s1+d1)/2;
m2 = (s2+d2)/2;
if(A[m1] == B[m2])
return A[m1];
if(A[m1] < B[m2]){
if((s1+d1)%2 == 0){
s1 = m1;
d2 = m2;
}
else{
s1 = m1+1;
d2 = m2;
}
}
else{
if((s2+d2)%2 == 0){
s2=m2;
d1=m1;
}
else{
s2=m2+1;
d1=m1;
}
}
}
return A[s1] < B[s2] ? A[s1]:B[s2];
}
void input(int A[],int B[],int i,int n){
printf("输入数组A的数据");
for(i = 0;i < n;i++){
scanf("%d",&A[i]);
}
printf("输入数组B的数据");
for(i = 0;i < n;i++){
scanf("%d",&B[i]);
}
}
int main(){
int i = 0;
int n;
printf("数组中一共有n个数,n=");
scanf("%d",&n);
int A[n];
int B[n];
input(A,B,i,n);
for(i = 0;i < n;i++){
printf("A的数据为%d\n",A[i]);
}
for(i = 0;i < n;i++){
printf("B的数据为%d\n",B[i]);
}
printf("%d\n", M_search(A, B, n));
}
