Решение: Анализ логического условия программы
Ниже приведена программа, записанная на пяти языках программирования. Программа выводит «YES», если выполняется хотя бы одно из условий: $s > A$ или $t > 12$; в противном случае она выводит «NO».
Было проведено 9 запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел: $(13, 2)$; $(11, 12)$; $(-12, 12)$; $(2, -2)$; $(-10, -10)$; $(6, -5)$; $(2, 8)$; $(9, 10)$; $(1, 13)$.
Укажите наибольшее целое значение параметра $A$, при котором для указанных входных данных программа напечатает «NO» семь раз.
Решение по шагам
5 шаговПрограмма печатает «NO», если оба условия в скобках ложны: $s \leq A$ и $t \leq 12$.
Для последней пары $(1, 13)$ условие $t > 12$ истинно, поэтому программа печатает «YES» независимо от значения $A$.
Для остальных восьми пар значение $t$ не превышает $12$, поэтому «NO» печатается тогда и только тогда, когда $s \leq A$.
Чтобы получить семь выводов «NO», ровно одна из первых восьми пар должна иметь $s > A$. Значения $s$ среди них: $13$, $11$, $-12$, $2$, $-10$, $6$, $2$, $9$.
Если $A = 12$, только значение $s = 13$ не удовлетворяет условию $s \leq A$. Поэтому семь остальных пар дают «NO». Значение $A = 13$ уже приведёт к восьми выводам «NO», значит максимальное подходящее значение — $12$.
Где здесь ошибаются
Учитывать последнюю пару $(1, 13)$ как возможный вывод «NO».
Считать достаточным выполнение только условия $s \leq A$ и не проверять условие $t \leq 12$.
Выбрать $A = 13$, не заметив, что тогда все первые восемь запусков дадут «NO».