試題編號: | 201612-1 |
試題名稱: | 中間數 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述: |
問題描述
在一個整數序列a1, a2,
…, an中,如果存在某個數,大於它的整數數量等於小於它的整數數量,則稱其爲中間數。在一個序列中,可能存在多個下標不相同的中間數,這些中間數的值是相同的。
給定一個整數序列,請找出這個整數序列的中間數的值。 輸入格式
輸入的第一行包含了一個整數n,表示整數序列中數的個數。
第二行包含n個正整數,依次表示a1, a2, …, an。 輸出格式
如果約定序列的中間數存在,則輸出中間數的值,否則輸出-1表示不存在中間數。
樣例輸入
6
2 6 5 6 3 5 樣例輸出
5
樣例說明
比5小的數有2個,比5大的數也有2個。
樣例輸入
4
3 4 6 7 樣例輸出
-1
樣例說明
在序列中的4個數都不滿足中間數的定義。
樣例輸入
5
3 4 6 6 7 樣例輸出
-1
樣例說明
在序列中的5個數都不滿足中間數的定義。
評測用例規模與約定
對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
|
試題編號: | 201612-1 |
試題名稱: | 中間數 |
編譯環境: | |
答案程序: |
#include <stdio.h> int main() { int n,i,j,mid; scanf("%d",&n); int a[1005]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { int small=0,big=0; for(j=0;j<n;j++) { if(a[i]<a[j]) small++; if(a[i]>a[j]) big++; } if(small==big) { mid=a[i]; break; } else mid=-1; } printf("%d",mid); return 0; } |