На перемене в классе оставались 8 школьников, один из ребят разбил окно. На вопрос учителя, кто это сделал, ученики ответили так: • Артур: «Сеня разбил!» • Соня: «Разбила Кира!» • Маша: «Разбила Соня» • Миша: «Разбил кто-то с улицы» • Алиса: «Да, Маша права» • Дима: «Это сделала либо Кира, либо Соня» • Сеня: «Ни Кира, ни Соня этого не делали» • Кира: «Сеня не бил!» Известно, что из высказываний ребят истинно только три. Установите, кто разбил окно. Решение оформите в виде таблицы
Объяснение:
Запишем условие кратко:
(1) Маша = Егор + бутерброд с сыром
(2) Саша = Аня + шоколадное печенье
(3) Мила = Кирилл + луковые чипсы
(4) Егор + бутерброд с котлетой = Аня + картофельные чипсы
(5) Саша + молочный коктейль = Мила + лимонад
Подставляем (2) в (5): Аня + шоколадное печенье + молочный коктейль = Мила + лимонад = ...
В получившееся добавляем (3): ... = Кирилл + лимонад + луковые чипсы
В обе части прибавляем картофельные чипсы и бутерброд с сыром:
Аня + картофельные чипсы + бутерброд с сыром + шоколадное печенье + молочный коктейль = Кирилл + бутерброд с сыром + лимонад + луковые чипсы + картофельные чипсы
Пользуемся (4)...
Егор + бутерброд с сыром + бутерброд с котлетой + шоколадное печенье + молочный коктейль = Кирилл + бутерброд с сыром + лимонад + луковые чипсы + картофельные чипсы
... и (1):
Маша + бутерброд с котлетой + шоколадное печенье + молочный коктейль = Кирилл + бутерброд с сыром + лимонад + луковые чипсы + картофельные чипсы
Дальше я буду все покупки сокращать до первых букв.
Если считать, что кроме описанного в условии ничего куплено не было, то
1) Маша купила БС, Л, ЛЧ, КЧ и
2) Кирилл БК, ШП, МК.
Пользуемся (1):
3) Егор купил Л, ЛЧ, КЧ.
Используем (4):
4) Аня купила Л, ЛЧ, БК.
Из (3) узнаём предпочтения Милы:
5) Мила купила БК, ЛЧ, ШП, МК.
Наконец, из (5)
6) Саша купил БК, ЛЧ, ШП, Л.
int[] a = new int[n];
a[0] = in.nextInt();
int min = a[0];
int minS = min;
for (int i = 1; i < n; i++) {
a[i] = in.nextInt();
if (a[i] < min) min = a[i];
}
for (int i = 1; i < n; i++) {
if (a[i] < minS && a[i] != min) minS = a[i];
}
System.out.println(min + " " + minS);
На всякий случай объясню еще так.
Изначально двум минимумам мы присваиваем значение первого элемента.
В первом цикле ты ищешь первый минимум, тут всё понятно: со второго элемента массива, если элемент меньше минимума, то минимуму присваиваем значение элемента.
Во втором цикле мы ищем второй минимум: всё то же самое, только добавляется ещё одно условие: элемент должен быть не равен первому минимуму.
Вот, впринципе, и всё