Ребят, решил задачу очень по дурацки, а хотелось бы понять, как её по-человечески решить надо было. Просто честное слово пол дня просидел и какие варианты не придумывал, все никак. Собственно сложность состоит в том чтобы присвоить первое число(из тех, что мы будем сравнивать на предмет максимальности) в переменную maximum, а впоследствии её сравнивать со следующими, выбирать максимальное и присваивать. Но так как мы делаем это в цикле, то поле, где мы присваиваем первое число переменной maximum будет также работать на следующих циклах, а как выкрутится здесь я не пойму:( В итоге чтобы не было конфликта с отрицательными числами, я просто присвоил переменной maximum самое меньшее отрицательное число из диапазона int. Понимаю насколько глупо:) Если кому не сложно напишите пожалуйста нормальный код с подробными комментариями. Ниже мой код: public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int numbers = Integer.parseInt(reader.readLine()); int maximum = -2147483648; for (int i = 0; i < numbers; i++) { int x = Integer.parseInt(reader.readLine()); maximum = Math.max(maximum, x); } System.out.println(maximum); } }