ICPC Score Totalizer Software 2309

来源:互联网 发布:电话数据统计 编辑:程序博客网 时间:2024/06/07 13:26

Problem Description

The International Clown and Pierrot Competition (ICPC), is one of the most distinguished and 

also the most popular events on earth in the show business.
One of the unique features of this contest is the great number of judges that sometimes counts up

 to one hundred. The number of judges may differ from one contestant to another, because judges

 with any relationship whatsoever with a specific contestant are temporarily excluded for scoring 

his/her performance.

Basically, scores given to a contestant's performance by the judges are averaged to decide his/her 

score. To avoid letting judges with eccentric viewpoints too much influence the score, the highest 

and the lowest scores are set aside in this calculation. If the same highest score is marked by two 

or more judges, only one of them is ignored. The same is with the lowest score. The average, 

which may contain fractions, are truncated down to obtain final score as an integer.

You are asked to write a program that computes the scores of performances, given the scores of all 

the judges, to speed up the event to be suited for a TV program.

Input

The input consists of a number of datasets, each corresponding to a contestant's performance. 

There are no more than 20 datasets in the input.

A dataset begins with a line with an integer n, the number of judges participated in scoring the 

performance (3 ≤ ≤ 100). Each of the n lines following it has an integral score s (0 ≤ ≤ 

1000) marked by a judge. No other characters except for digits to express these numbers are in the 

input. Judges' names are kept secret.

The end of the input is indicated by a line with a single zero in it.

Output

For each dataset, a line containing a single decimal integer indicating the score for the 

corresponding performance should be output. No other characters should be on the output line.

Sample Input

3

1000 

342 

11 

932 

300 

1000 

200 

400 

353 

242 

402 

274 

283 

132 

402 

523 

0

Sample Output

342

7

300

326

#include <iostream>#include <vector>#include <algorithm>#include <numeric>int main(int argc, const char* argv[]){    int nCases = 0;    while (std::cin >> nCases && nCases != 0)    {        int nTemp = 0;        std::vector<int> vec;        for (int i=0; i<nCases; ++i)        {            std::cin >> nTemp;            vec.push_back(nTemp);        }        sort(vec.begin(), vec.end());        std::cout << accumulate(vec.begin()+1, vec.end()-1, 0)/(nCases-2) << std::endl;    }    return 0;}
0 0