Вопрос:

6. Ниже приведена программа, записанная на пяти языках программирования. Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (1, 2), (11, 2), (1, 12), (11, 12), (-11, -12), (-11, 12), (-12, 11), (10, 10), (10, 5). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» три раза.

Ответ:

Решение:

Программа печатает «NO», если условие `(s > 10) or (t > A)` ложно. Это означает, что `s <= 10` и `t <= A`.

Рассмотрим каждый запуск программы:

  1. (1, 2): `1 <= 10` (верно), `2 <= A`.
  2. (11, 2): `11 <= 10` (неверно). Условие выполняется, напечатается «YES».
  3. (1, 12): `1 <= 10` (верно), `12 <= A`.
  4. (11, 12): `11 <= 10` (неверно). Условие выполняется, напечатается «YES».
  5. (-11, -12): `-11 <= 10` (верно), `-12 <= A`.
  6. (-11, 12): `-11 <= 10` (верно), `12 <= A`.
  7. (-12, 11): `-12 <= 10` (верно), `11 <= A`.
  8. (10, 10): `10 <= 10` (верно), `10 <= A`.
  9. (10, 5): `10 <= 10` (верно), `5 <= A`.

Программа напечатает «NO» только тогда, когда `s <= 10` и `t <= A`. Из входных данных мы видим, что «YES» будет напечатано в случаях, когда `s > 10`. Значит, для того чтобы «NO» было напечатано три раза, нам нужно, чтобы три запуска соответствовали условию `s <= 10` и `t <= A`.

Рассмотрим запуски, где `s <= 10`:

  • (1, 2): `2 <= A`
  • (1, 12): `12 <= A`
  • (-11, -12): `-12 <= A`
  • (-11, 12): `12 <= A`
  • (-12, 11): `11 <= A`
  • (10, 10): `10 <= A`
  • (10, 5): `5 <= A`

Чтобы «NO» было напечатано три раза, нам нужно, чтобы из этих семи случаев три остались истинными. Заметим, что при `A = 10` условия `2 <= 10`, `12 <= 10` (неверно), `-12 <= 10`, `12 <= 10` (неверно), `11 <= 10` (неверно), `10 <= 10`, `5 <= 10` дают три истинных условия: (1, 2), (-11, -12), (10, 10), (10, 5). Для того чтобы «NO» было напечатано ровно три раза, нам нужно, чтобы ровно три запуска удовлетворяли условиям `s <= 10` и `t <= A`.

Рассмотрим случаи, когда `s <= 10`:

  1. (1, 2)
  2. (1, 12)
  3. (-11, -12)
  4. (-11, 12)
  5. (-12, 11)
  6. (10, 10)
  7. (10, 5)

Мы хотим, чтобы три из этих случаев привели к «NO». Для этого нужно, чтобы `t <= A` для трех случаев, а для остальных четырех `t > A`.

Наименьшее значение `t` в этих случаях равно -12, наибольшее — 12. Нам нужно найти наименьшее `A`, чтобы три раза было напечатано «NO».

Если `A = 10`, то `t <= A` выполняется для (1, 2), (-11, -12), (10, 10), (10, 5). Это четыре раза.

Если `A = 11`, то `t <= A` выполняется для (1, 2), (-11, -12), (-11, 12), (-12, 11), (10, 10), (10, 5). Это шесть раз.

Если `A = 12`, то `t <= A` выполняется для (1, 2), (1, 12), (-11, -12), (-11, 12), (-12, 11), (10, 10), (10, 5). Это семь раз.

Нам нужно, чтобы ровно три раза было напечатано «NO». Это произойдет, если `s <= 10` и `t <= A` ровно три раза. Рассмотрим запуски, где `s <= 10`:

  • (1, 2)
  • (1, 12)
  • (-11, -12)
  • (-11, 12)
  • (-12, 11)
  • (10, 10)
  • (10, 5)

Нам нужно, чтобы для ровно трех пар `t <= A`. Если `A = 11`, то `t <= 11` для пар: (1, 2), (-11, -12), (-12, 11), (10, 10), (10, 5). Это 5 раз. Если `A = 10`, то `t <= 10` для пар: (1, 2), (-11, -12), (10, 10), (10, 5). Это 4 раза. Если `A = 5`, то `t <= 5` для пар: (1, 2), (-11, -12), (10, 5). Это 3 раза. Проверим `A = 5`.

Запуски, где `s <= 10`:

  1. (1, 2): `1 <= 10` и `2 <= 5` (верно) -> NO
  2. (1, 12): `1 <= 10` и `12 <= 5` (неверно) -> YES
  3. (-11, -12): `-11 <= 10` и `-12 <= 5` (верно) -> NO
  4. (-11, 12): `-11 <= 10` и `12 <= 5` (неверно) -> YES
  5. (-12, 11): `-12 <= 10` и `11 <= 5` (неверно) -> YES
  6. (10, 10): `10 <= 10` и `10 <= 5` (неверно) -> YES
  7. (10, 5): `10 <= 10` и `5 <= 5` (верно) -> NO

При `A = 5` три раза напечатается «NO». Это наименьшее целое значение `A`, при котором условие `t <= A` будет истинно ровно для трех пар с `s <= 10`.

Ответ: 5