import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.roundToInt
fun main(args: Array<String>) {
var br = BufferedReader(InputStreamReader(System.`in`))
// br 사용 선언
var input: Int = br.readLine().toInt()
// 크기 입력받기
val arr = mutableListOf<Int>()
// 값을 담을 리스트
var everage: Int = 0
// 기본값을 0으로 줌
if (input != 0) {
// 입력이 0이 아닐경우 실행
for (i: Int in 0 .. input - 1) {
var RQ: Int = br.readLine().toInt()
// 입력을 받고
arr.add(i, RQ)
// 리스트의 i번째에 그 값을 할당
everage = everage + RQ
// everage의 값을 기존값 + RQ로 지정
}
var min: Int = arr[0]
// 일단, 기본값을 arr[0]으로 지정하기
var j: Int = 0
if (arr.size > 1) {
// 값이 하나일 경우 이 조건문 진입차단
while (true) {
// 무한반복
if (arr[0] == arr[1]) {
// 만약 0번째 값과 1번째 값이 같은경우
break
// 반복문 탈출
}
if (arr[j] != arr[j + 1]) {
// j번째값과 j + 1번째 값이 다른경우
min = arr[j]
// min의 값을 j로 지정
break
// 반복문 탈출
}
j++
}
}
arr.sort()
// 모든 값을 정렬해줌
var k: Int = arr.size - 2 // k의 값 지정,
if (arr.size > 1 && arr[k - 1] == arr[k] && arr[k] == arr[k + 1]) {
// 상기 조건을 모두 만족시킨다면
min = arr[k - 1]
// min의 값을 지정(수가 5,5,4,4,3,3,-1로 주어진 경우)
}
println((everage.toDouble() / input.toDouble()).roundToInt())
// 평균 (반올림을 해줌)
println(arr[arr.size / 2])
// 중앙값
println(min)
// 위에서 지정해준 최빈값
println(arr[input - 1] - arr[0])
// 범위
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXIKaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXIKaW1wb3J0IGtvdGxpbi5tYXRoLnJvdW5kVG9JbnQKCmZ1biBtYWluKGFyZ3M6IEFycmF5PFN0cmluZz4pIHsKICAgIHZhciBiciA9IEJ1ZmZlcmVkUmVhZGVyKElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5gaW5gKSkKICAgIC8vIGJyIOyCrOyaqSDshKDslrgKICAgIHZhciBpbnB1dDogSW50ID0gYnIucmVhZExpbmUoKS50b0ludCgpCiAgICAvLyDtgazquLAg7J6F66Cl67Cb6riwCiAgICB2YWwgYXJyID0gbXV0YWJsZUxpc3RPZjxJbnQ+KCkKICAgIC8vIOqwkuydhCDri7TsnYQg66as7Iqk7Yq4CiAgICB2YXIgZXZlcmFnZTogSW50ID0gMAogICAgLy8g6riw67O46rCS7J2EIDDsnLzroZwg7KSMCgogICAgaWYgKGlucHV0ICE9IDApIHsKICAgICAgICAvLyDsnoXroKXsnbQgMOydtCDslYTri5Dqsr3smrAg7Iuk7ZaJCgogICAgICAgIGZvciAoaTogSW50IGluIDAgLi4gaW5wdXQgLSAxKSB7CiAgICAgICAgICAgIHZhciBSUTogSW50ID0gYnIucmVhZExpbmUoKS50b0ludCgpCiAgICAgICAgICAgIC8vIOyeheugpeydhCDrsJvqs6AKICAgICAgICAgICAgICAgIGFyci5hZGQoaSwgUlEpCiAgICAgICAgICAgIC8vIOumrOyKpO2KuOydmCBp67KI7Ke47JeQIOq3uCDqsJLsnYQg7ZWg64u5CiAgICAgICAgICAgICAgICBldmVyYWdlID0gZXZlcmFnZSArIFJRCiAgICAgICAgICAgIC8vIGV2ZXJhZ2XsnZgg6rCS7J2EIOq4sOyhtOqwkiArIFJR66GcIOyngOyglQogICAgICAgIH0KCiAgICAgICAgdmFyIG1pbjogSW50ID0gYXJyWzBdCiAgICAgICAgLy8g7J2864uoLCDquLDrs7jqsJLsnYQgYXJyWzBd7Jy866GcIOyngOygle2VmOq4sAogICAgICAgIHZhciBqOiBJbnQgPSAwCgogICAgICAgIGlmIChhcnIuc2l6ZSA+IDEpIHsKICAgICAgICAgICAgLy8g6rCS7J20IO2VmOuCmOydvCDqsr3smrAg7J20IOyhsOqxtOusuCDsp4TsnoXssKjri6gKICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgICAgIC8vIOustO2VnOuwmOuztQogICAgICAgICAgICAgICAgaWYgKGFyclswXSA9PSBhcnJbMV0pIHsKICAgICAgICAgICAgICAgICAgICAvLyDrp4zslb0gMOuyiOynuCDqsJLqs7wgMeuyiOynuCDqsJLsnbQg6rCZ7J2A6rK97JqwCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAvLyDrsJjrs7XrrLgg7YOI7LacCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoYXJyW2pdICE9IGFycltqICsgMV0pIHsKICAgICAgICAgICAgICAgICAgICAvLyBq67KI7Ke46rCS6rO8IGogKyAx67KI7Ke4IOqwkuydtCDri6Trpbjqsr3smrAKICAgICAgICAgICAgICAgICAgICBtaW4gPSBhcnJbal0KICAgICAgICAgICAgICAgICAgICAvLyBtaW7snZgg6rCS7J2EIGrroZwg7KeA7KCVCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAvLyDrsJjrs7XrrLgg7YOI7LacCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBqKysKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgYXJyLnNvcnQoKQogICAgICAgIC8vIOuqqOuToCDqsJLsnYQg7KCV66Cs7ZW07KSMCiAgICAgICAgCiAgICAgICAgdmFyIGs6IEludCA9IGFyci5zaXplIC0gMiAvLyBr7J2YIOqwkiDsp4DsoJUsCiAgICAgICAgaWYgKGFyci5zaXplID4gMSAmJiBhcnJbayAtIDFdID09IGFycltrXSAmJiBhcnJba10gPT0gYXJyW2sgKyAxXSkgewogICAgICAgICAgICAvLyDsg4HquLAg7KGw6rG07J2EIOuqqOuRkCDrp4zsobHsi5ztgqjri6TrqbQKICAgICAgICAgICAgbWluID0gYXJyW2sgLSAxXQogICAgICAgICAgICAvLyBtaW7snZgg6rCS7J2EIOyngOyglSjsiJjqsIAgNSw1LDQsNCwzLDMsLTHroZwg7KO87Ja07KeEIOqyveyasCkKICAgICAgICB9CgogICAgICAgIHByaW50bG4oKGV2ZXJhZ2UudG9Eb3VibGUoKSAvIGlucHV0LnRvRG91YmxlKCkpLnJvdW5kVG9JbnQoKSkKICAgICAgICAvLyDtj4nqt6AgKOuwmOyYrOumvOydhCDtlbTspIwpCiAgICAgICAgcHJpbnRsbihhcnJbYXJyLnNpemUgLyAyXSkKICAgICAgICAvLyDspJHslZnqsJIKICAgICAgICBwcmludGxuKG1pbikKICAgICAgICAvLyDsnITsl5DshJwg7KeA7KCV7ZW07KSAIOy1nOu5iOqwkgogICAgICAgIHByaW50bG4oYXJyW2lucHV0IC0gMV0gLSBhcnJbMF0pCiAgICAgICAgLy8g67KU7JyECiAgICB9Cn0=