AA:白細胞計數

總時間限制: 
1000ms

 

記憶體限制: 
65536kB
描述

醫院取樣了某臨床病例治療期間的白細胞數量樣本n份,用於分析某種新抗生素對該病例的治療效果。為了降低分析誤差,要先從這n份樣本中去除一個數值最大的 樣本和一個數值最小的樣本,然後將剩餘n-2個有效樣本的平均值作為分析指標。同時,為了觀察該抗生素的療效是否穩定,還要給出該平均值的誤差,即所有有 效樣本(即不包括已扣除的兩個樣本)與該平均值之差的絕對值的最大值。

現在請你編寫程式,根據提供的n個樣本值,計算出該病例的平均白細胞數量和對應的誤差。

輸入
輸入的第一行是一個正整數n(2 < n <= 300),表明共有n個樣本。
以下共有n行,每行為一個浮點數,為對應的白細胞數量,其單位為10^9/L。數與數之間以一個空格分開。
輸出
輸出為兩個浮點數,中間以一個空格分開。分別為平均白細胞數量和對應的誤差,單位也是10^9/L。計算結果需保留到小數點後2位。
樣例輸入
5
12.0
13.0
11.0
9.0
10.0
樣例輸出
11.00 1.00
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7 
 8     int n;
 9     double a[301];
10     double sum=0;
11     cin>>n;
12     for(int i=0;i<n;++i)
13     {
14 
15         cin>>a[i];
16         sum+=a[i];
17     }
18     sort(a,a+n);
19     double avg=0;
20     avg=(sum-a[0]-a[n-1])/(n-2);
21     double max= a[n-2]-avg>=avg-a[1]? a[n-2]-avg:avg-a[1];
22     printf("%.2f %.2f",avg,max);
23     return 0;
24 }

 

Tags: