Написал первым пришедшим в голову способом. Пускай кривой огромный код, но почему проверку не проходит?
package com.javarush.task.task08.task0826;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Пять победителей
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[20];
for (int i = 0; i < array.length; i++) {
array[i] = Integer.parseInt(reader.readLine());
}
sort(array);
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
}
public static void sort(int[] array) {
int best[]= new int[array.length]; //best[] временно будет хранить максималки
int y = 0; //хранит индекс максимального числа массива array[].
for (int i = 0; i < array.length; i++) {
int max= array[0];
for (int j = 0; j <array.length ; j++) {
if (max<array[j]) {max = array[j]; y = j;}/*y=j потом понадобится,чтобы
обнулить максимальное число
в рассматриваемом массиве*/
}
best[i]= max;
array[y] = 0; /*Найдя максималку,
обнуляем это число из array,
чтобы найти второе максимальное
на следующем шаге*/
}
for (int i = 0; i <array.length ; i++) { //копируем best в array
array[i] = best[i];
}
}
}