/******************************************************************* Reference solution for Spring 2013 COS 126 Programming Exam 1 Foodlympics Part One: Competitive Cuisine Author: COS 126 Staff Netid: cos126 Precepts: lots of them Dependencies: StdIn, StdOut Usage: java FoodPart1 Description: Reads in judge rankings for C countries by J judges. Prints out the rounded average score for each country, excluding the min and max. **************************************************************************/ public class FoodPart1 { // excluding the min and max, compute the rounded average // of the entries of judgeRatings public static int score(int[] judgeRatings) { int J = judgeRatings.length; int sum = 0; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (int i = 0; i < J; i++) { min = Math.min(min, judgeRatings[i]); max = Math.max(max, judgeRatings[i]); sum += judgeRatings[i]; } // eliminate min and max sum = sum - min - max; // average double ave = sum / (double) (J - 2); // rounded average, excluding min and max int score = (int) Math.round(ave); return score; } // read the judges' ratings for several countries // from standard input and print their overall scores // to standard output public static void main(String[] args) { int C = StdIn.readInt(); // number of countries int J = StdIn.readInt(); // number of judges StdOut.println(C); // first line of output // for each country, process their ratings for (int i = 0; i < C; i++) { // read the next line of input String name = StdIn.readString(); int[] ratings = new int[J]; for (int j = 0; j < J; j++) ratings[j] = StdIn.readInt(); // compute the overall score int overall = score(ratings); // output for this country StdOut.println(name + " " + overall); } } }