Problem:
Problem A: ICPC Score Totalizer Software

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 ≤ n ≤
100). Each of the n lines following it has an integral
score s (0 ≤ s ≤ 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
0
5
2
2
9
11
932
5
300
1000
0
200
400
8
353
242
402
274
283
132
402
523
0

Output for the Sample Input

342
7
300
326

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	static int[][] s = new int[100][1000]; // point[演技][それぞれの審査員の点]
	static int[] n = new int[100]; // 演技ごとの審査員の人数
	static int[] ave = new int[100];
	static int section = 0;
	static int[] max = new int[100];
	static int[] min = new int[100];
	static int i = 0, j = 0;


	/**
	 * 入力をn,sのそれぞれの配列に格納するメソッド
	 */
	public static void inPoint() throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		while (j < 1000) {
			j = 0;
			String str = br.readLine();
			n[i] = Integer.parseInt(str);

			if (n[i] == 0) {
				section = i;
				break;
			}

			while (j < n[i]) { // すべての審査員の点を配列に格納
				str = br.readLine();
				s[i][j] = Integer.parseInt(str);
				j++; // 次の審査員
			}

			i++; // 次の演技
		}

	}

	/**
	 * 最大値および最小値を探すメソッド
	 */
	public static void findMaxMin(int s[][]) {

		for(i = 0; i < 100; i++){
			max[i] = 0;
			min[i] = 1000;
		}

		for (i = 0; i < section; i++) { // i（演技）が0から末尾まで繰り返す
			for (j = 0; j < n[i]; j++) { // j（審査員）が1から末尾のひとつ手前まで繰り返す

				if (s[i][j] < min[i]){
					min[i] = s[i][j];
				}
				if(s[i][j] > max[i]){
					max[i] = s[i][j];
				}
			} // jについてのループ

		}
	}

	/**
	 * 演技のそれぞれの平均を求めるメソッド
	 */
	public static void average(int s[][]) {

		for (i = 0; i < section; i++) {
			for (j = 0; j < n[i]; j++) { // 1番目から末尾の1つ前まで
				ave[i] += s[i][j]; // 合計を求める
			}
			ave[i] = (ave[i] - max[i] - min[i]) / (n[i] - 2); // 審査員の数-2で割る
		}

	}

	public static void main(String[] args) throws IOException {

		inPoint();
		findMaxMin(s);
		average(s);

		for (i = 0; i < section; i++) {
			System.out.println(ave[i]);
		}

	}

}