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