package backjoon; // https://www.acmicpc.net/problem/2108 // íµê³í import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class _2108 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //sol memory 40392 runtime 264 int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); // ì ë ¥ê°ì ë²ì : -4000 ~ 4000 int[] arr = new int[8001]; int sum = 0; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; // median ê³¼ mode ë -4000~4000 ì ì ì¸í ìë¡ ì´ê¸°ííë©´ ëë¤. int median = 0; int mode = 0; for(int i = 0; i < N; i++) { int value = Integer.parseInt(br.readLine()); sum += value; arr[value + 4000]++; if(max < value) { max = value; } if(min > value) { min = value; } } int count = 0; // ì¤ìê° ë¹ë ëì ì int mode_max = 0; // ìµë¹ê°ì ìµëê° // ì´ì ì ëì¼í ìµë¹ê°ì´ 1ë²ë§ ë±ì¥íìê²½ì° true, ìëê²½ì° false boolean flag = false; for(int i = min + 4000; i <= max + 4000; i++) { if(arr[i] > 0) { // <ì¤ìê° ì°¾ê¸° if(count < (N + 1) / 2) { count += arr[i]; // iê°ì ë¹ëì를 count ì ëì median = i - 4000; } // ìµë¹ê° 찾기 if(mode_max < arr[i]) { mode_max = arr[i]; mode = i - 4000; flag = true; // 첫 ë±ì¥ì´ë¯ë¡ true ë¡ ë³ê²½ } // ì´ì ìµë¹ê° ìµëê°ê³¼ ëì¼í ê²½ì°ë©´ì í ë²ë§ ì¤ë³µëë ê²½ì° else if(mode_max == arr[i] && flag == true) { mode = i - 4000; flag = false; } } } System.out.println((int)Math.round((double)sum / N)); System.out.println(median); System.out.println(mode); System.out.println(max - min); } } /* input 5 1 3 8 -2 2 output 2 2 1 10 */