Вопрос:

Ниже приведена программа, записанная на пяти языках программирования. Было проведено 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): `s = 1`, `t = 2`. Условие `s <= 10` выполняется (1 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `2 <= A`.
  2. (11, 2): `s = 11`, `t = 2`. Условие `s <= 10` не выполняется (11 > 10). Следовательно, условие `(s > 10) or (t > A)` истинно, и программа напечатает «YES».
  3. (1, 12): `s = 1`, `t = 12`. Условие `s <= 10` выполняется (1 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `12 <= A`.
  4. (11, 12): `s = 11`, `t = 12`. Условие `s <= 10` не выполняется (11 > 10). Следовательно, условие `(s > 10) or (t > A)` истинно, и программа напечатает «YES».
  5. (−11, 12): `s = -11`, `t = 12`. Условие `s <= 10` выполняется (-11 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `12 <= A`.
  6. (−11, 12): `s = -11`, `t = 12`. Условие `s <= 10` выполняется (-11 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `12 <= A`.
  7. (−12, 11): `s = -12`, `t = 11`. Условие `s <= 10` выполняется (-12 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `11 <= A`.
  8. (10, 10): `s = 10`, `t = 10`. Условие `s <= 10` выполняется (10 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `10 <= A`.
  9. (10, 5): `s = 10`, `t = 5`. Условие `s <= 10` выполняется (10 <= 10). Для вывода «NO» нужно, чтобы `t <= A`, то есть `5 <= A`.

Теперь определим, для каких значений `A` программа напечатает «NO» ровно три раза. Это означает, что для трех пар из списка должны выполняться условия вывода «NO», а для остальных — условие вывода «YES».

Пары, для которых всегда выводится «YES» (так как `s > 10`): (11, 2) и (11, 12). Это 2 пары.

Оставшиеся 7 пар:

  • (1, 2): NO, если `A >= 2`
  • (1, 12): NO, если `A >= 12`
  • (-11, 12): NO, если `A >= 12`
  • (-11, 12): NO, если `A >= 12`
  • (-12, 11): NO, если `A >= 11`
  • (10, 10): NO, если `A >= 10`
  • (10, 5): NO, если `A >= 5`

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

Рассмотрим диапазон значений `A`:

  • Если `A < 5`: «NO» только для (10, 5) — 1 раз.
  • Если `5 <= A < 10`: «NO» для (10, 5) и (10, 10) — 2 раза.
  • Если `10 <= A < 11`: «NO» для (10, 5), (10, 10), (1, 2) — 3 раза.

При `A` в диапазоне от 10 до 10 (включительно) у нас есть:

  • (1, 2): `2 <= 10` — NO
  • (10, 10): `10 <= 10` — NO
  • (10, 5): `5 <= 10` — NO

Эти 3 пары дают «NO». Остальные пары из 7:

  • (1, 12): `12 <= 10` — YES
  • (-11, 12): `12 <= 10` — YES
  • (-11, 12): `12 <= 10` — YES
  • (-12, 11): `11 <= 10` — YES

Итого: 3 раза «NO» и 4 раза «YES» из этих 7 пар. Плюс 2 пары, которые всегда дают «YES» (11, 2) и (11, 12). Всего 3 раза «NO».

Проверим следующий диапазон:

  • Если `11 <= A < 12`: «NO» для (10, 5), (10, 10), (1, 2), (-12, 11) — 4 раза.

Таким образом, значение `A = 10` является единственным, при котором условие «NO» выполняется ровно 3 раза.

Ответ: 10