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

 

posted on 2012-11-30 21:05  Besion王  阅读(338)  评论(0编辑  收藏  举报

导航