Решение: Анализ условного оператора
Ниже приведена программа, записанная на пяти языках программирования. Она вводит целые значения $s$, $t$ и $A$ и выводит «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$, при котором программа напечатает «YES» ровно четыре раза.
Решение по шагам
4 шагаУсловие $t > 12$ выполняется только для пары $(1, 13)$. Поэтому один вывод «YES» гарантирован.
Чтобы всего было четыре вывода «YES», среди остальных восьми запусков условие $s > A$ должно выполняться ровно три раза.
Значения $s$ в первых восьми запусках: $13$, $11$, $-12$, $2$, $-10$, $6$, $2$, $9$. При $A = 8$ значения $13$, $11$ и $9$ больше $A$, то есть условие выполняется ровно три раза.
При увеличении $A$ до $9$ значение $s = 9$ уже не удовлетворяет строгому неравенству $s > A$, поэтому подходящим остаётся меньшее число запусков. Следовательно, $8$ — наибольшее подходящее значение.
Где здесь ошибаются
Учитывать условие $t > 12$ для пары $(1, 13)$ как зависящее от $A$.
Заменять строгое неравенство $s > A$ на нестрогое $s \geq A$.
Считать четыре пары среди всех запусков только по условию $s > A$.