Find Median(找中位值)
1 #include <iostream> 2 using namespace std; 3 int pt[1000001]; 4 int main(){ 5 int num,i=0; 6 while(cin>>num){ 7 pt[i++]=num; 8 if(cin.get()=='\n')break;} 9 int L=i; 10 while(cin>>num){ 11 pt[i++]=num; 12 if(cin.get()=='\n')break;} 13 int left1=0,left2=L;bool prime; 14 for(i=0;i<L;i++){ 15 if(i==L-1){ 16 if(pt[left1]>pt[left2]) prime=true; 17 else prime=false;} 18 if(pt[left1]>pt[left2]) {left2++;} 19 else { left1++;} 20 } 21 if(prime) cout<<pt[left2-1]; 22 else cout<<pt[left1-1]; 23 24 }
1. Find Median
Description:
一个长度为L(L≥1)的升序序列S,处在第⌈L/2⌉个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现有两个等长升序序列A和B,找出A和B的中位数。
Input:
第一行:升序序列A(都是正整数);
第二行:升序序列B(都是正整数);
Output:
输出A和B的中位数
Sample Input:
11 13 15 17 19
2 4 6 8 20
Sample Output:
11