Вопрос:

The code implements a simple program that takes three integer inputs: s, t, and A. It then checks if "s > 10" OR "t > A". If this condition is true, it prints "YES"; otherwise, it prints "NO". The problem states that there were 9 runs of the program with the following pairs of (s, t) values: (1, 2), (11, 2), (1, 12), (11, 12), (−11, -12), (−11, 12), (−12, 11), (10, 10), (10, 5). The task is to find the smallest integer value of A for which the program will print "YES" exactly twice for the given input pairs.

Смотреть решения всех заданий с листа

Ответ:

Анализ программы и условий

Программа выводит "YES", если условие (s > 10 || t > A) истинно. Иначе выводится "NO".

Нам нужно найти наименьшее целое значение A, при котором "YES" будет напечатано ровно два раза для заданных пар (s, t).

Рассмотрим каждый запуск и условие для "YES"

  • (1, 2): 1 > 10 (ложь) || 2 > A. Чтобы получить "YES", нужно 2 > A.
  • (11, 2): 11 > 10 (истина) || 2 > A. Условие истинно, так как 11 > 10. Всегда "YES".
  • (1, 12): 1 > 10 (ложь) || 12 > A. Чтобы получить "YES", нужно 12 > A.
  • (11, 12): 11 > 10 (истина) || 12 > A. Условие истинно, так как 11 > 10. Всегда "YES".
  • (-11, -12): -11 > 10 (ложь) || -12 > A. Чтобы получить "YES", нужно -12 > A.
  • (-11, 12): -11 > 10 (ложь) || 12 > A. Чтобы получить "YES", нужно 12 > A.
  • (-12, 11): -12 > 10 (ложь) || 11 > A. Чтобы получить "YES", нужно 11 > A.
  • (10, 10): 10 > 10 (ложь) || 10 > A. Чтобы получить "YES", нужно 10 > A.
  • (10, 5): 10 > 10 (ложь) || 5 > A. Чтобы получить "YES", нужно 5 > A.

Анализ для получения ровно двух "YES"

Два запуска уже гарантированно дают "YES", это (11, 2) и (11, 12). Для остальных 7 запусков мы должны подобрать такое A, чтобы ровно два из них также давали "YES".

Рассмотрим условия для "YES" для оставшихся 7 запусков:

  • 2 > A
  • 12 > A
  • -12 > A
  • 12 > A
  • 11 > A
  • 10 > A
  • 5 > A

Перечислим уникальные условия в порядке убывания:

  • 12 > A (повторяется дважды)
  • 11 > A
  • 10 > A
  • 5 > A
  • 2 > A
  • -12 > A

Чтобы получить ровно два "YES" из этих 7 случаев, нам нужно, чтобы условие t > A выполнялось для двух пар (s, t).

Если мы выберем A так, чтобы оно было меньше двух самых больших значений t (но больше или равно следующему), то получим два "YES".

Самые большие значения t, для которых s > 10 ложно:

  • t=12 (из пар (1, 12) и (11, 12) - но (11, 12) уже дает YES, поэтому рассматриваем (1, 12)
  • t=12 (повторно, из (11, 12) - но опять же, s=11 > 10, так что это не повлияет на подсчет YES из этой группы)
  • t=11 (из пары (-12, 11))
  • t=10 (из пары (10, 10))
  • t=5 (из пары (10, 5))
  • t=2 (из пары (1, 2))
  • t=-12 (из пары (-11, -12))

Давайте переформулируем: нам нужно, чтобы ровно два из следующих условий стали истинными:

  • 2 > A
  • 12 > A
  • -12 > A
  • 12 > A
  • 11 > A
  • 10 > A
  • 5 > A

Для этого нам нужно, чтобы A было меньше двух наибольших значений t из списка, но не меньше третьего по величине.

Уникальные значения t, для которых s ≤ 10:

  • 2
  • 12
  • -12
  • 12
  • 11
  • 10
  • 5

Отсортируем эти значения t по убыванию:

  • 12
  • 12
  • 11
  • 10
  • 5
  • 2
  • -12

Чтобы получить ровно два "YES" из этой группы, нам нужно, чтобы A удовлетворяло двум самым сильным условиям t > A.

Если мы выберем A = 10:

  • 2 > 10 (ложь)
  • 12 > 10 (истина)
  • -12 > 10 (ложь)
  • 12 > 10 (истина)
  • 11 > 10 (истина)
  • 10 > 10 (ложь)
  • 5 > 10 (ложь)

Здесь получается 3 "YES" из этой группы. Это не подходит.

Если мы выберем A = 11:

  • 2 > 11 (ложь)
  • 12 > 11 (истина)
  • -12 > 11 (ложь)
  • 12 > 11 (истина)
  • 11 > 11 (ложь)
  • 10 > 11 (ложь)
  • 5 > 11 (ложь)

Здесь получается 2 "YES" из этой группы. Это то, что нужно!

Проверим общее количество "YES" при A = 11:

  • (1, 2): 2 > 11 (ложь) -> NO
  • (11, 2): 11 > 10 (истина) -> YES
  • (1, 12): 12 > 11 (истина) -> YES
  • (11, 12): 11 > 10 (истина) -> YES
  • (-11, -12): -12 > 11 (ложь) -> NO
  • (-11, 12): 12 > 11 (истина) -> YES
  • (-12, 11): 11 > 11 (ложь) -> NO
  • (10, 10): 10 > 11 (ложь) -> NO
  • (10, 5): 5 > 11 (ложь) -> NO

При A = 11 получаем 4 "YES". Это не подходит.

Нужно, чтобы ровно два из условий t > A стали истинными, где t берется из пар, где s ≤ 10.

Эти пары (s, t) и условия t > A:

  • (1, 2): 2 > A
  • (-11, -12): -12 > A
  • (-11, 12): 12 > A
  • (-12, 11): 11 > A
  • (10, 10): 10 > A
  • (10, 5): 5 > A

Обратите внимание, что пара (1, 12) также имеет s=1 ≤ 10, поэтому условие 12 > A будет применяться дважды.

Список условий t > A для пар, где s ≤ 10:

  • 2 > A
  • 12 > A
  • -12 > A
  • 12 > A
  • 11 > A
  • 10 > A
  • 5 > A

Отсортируем значения t, для которых s ≤ 10, по убыванию:

  • 12
  • 12
  • 11
  • 10
  • 5
  • 2
  • -12

Чтобы ровно два из этих условий были истинными, A должно быть таким, чтобы оно было меньше двух наибольших значений, но больше или равно третьему.

Если A = 10, то истинными будут: 12 > 10, 12 > 10, 11 > 10. Это 3 "YES".

Если A = 11, то истинными будут: 12 > 11, 12 > 11. Это 2 "YES".

Итак, при A = 11, из этих 7 запусков получаем 2 "YES".

Теперь проверим общее количество "YES" при A = 11:

  • (1, 2): s=1 ≤ 10, t=2 ≤ 11 -> NO
  • (11, 2): s=11 > 10 -> YES
  • (1, 12): s=1 ≤ 10, t=12 > 11 -> YES
  • (11, 12): s=11 > 10 -> YES
  • (-11, -12): s=-11 ≤ 10, t=-12 ≤ 11 -> NO
  • (-11, 12): s=-11 ≤ 10, t=12 > 11 -> YES
  • (-12, 11): s=-12 ≤ 10, t=11 ≤ 11 -> NO
  • (10, 10): s=10 ≤ 10, t=10 ≤ 11 -> NO
  • (10, 5): s=10 ≤ 10, t=5 ≤ 11 -> NO

Всего 4 "YES" при A = 11. Не подходит.

Давайте еще раз рассмотрим условия для "YES":

  • s > 10 (истинно для пар: (11, 2), (11, 12))
  • t > A (истинно для пар, где s ≤ 10 и t > A)

Нам нужно, чтобы суммарно было ровно 2 "YES". Так как первые два запуска уже дают "YES", нам нужно, чтобы из оставшихся 7 запусков ровно 0 дали "YES".

Это означает, что для всех пар (s, t), где s ≤ 10, должно выполняться условие t ≤ A.

Пары, где s ≤ 10:

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

Значения t для этих пар:

  • 2
  • 12
  • -12
  • 12
  • 11
  • 10
  • 5

Чтобы для всех этих пар было t ≤ A, A должно быть больше или равно максимальному значению t. Максимальное значение t здесь равно 12.

Значит, если A ≥ 12, то все эти 7 запусков дадут "NO".

При A = 12:

  • (1, 2): 2 > 12 (ложь) -> NO
  • (11, 2): 11 > 10 (истина) -> YES
  • (1, 12): 12 > 12 (ложь) -> NO
  • (11, 12): 11 > 10 (истина) -> YES
  • (-11, -12): -12 > 12 (ложь) -> NO
  • (-11, 12): 12 > 12 (ложь) -> NO
  • (-12, 11): 11 > 12 (ложь) -> NO
  • (10, 10): 10 > 12 (ложь) -> NO
  • (10, 5): 5 > 12 (ложь) -> NO

При A = 12 мы получаем ровно 2 "YES".

Теперь нам нужно найти наименьшее целое значение A.

Давайте проверим A = 11 еще раз. Если A = 11:

  • (1, 2): 2 > 11 (ложь) -> NO
  • (11, 2): 11 > 10 (истина) -> YES
  • (1, 12): 12 > 11 (истина) -> YES
  • (11, 12): 11 > 10 (истина) -> YES
  • (-11, -12): -12 > 11 (ложь) -> NO
  • (-11, 12): 12 > 11 (истина) -> YES
  • (-12, 11): 11 > 11 (ложь) -> NO
  • (10, 10): 10 > 11 (ложь) -> NO
  • (10, 5): 5 > 11 (ложь) -> NO

При A = 11 мы получаем 4 "YES".

Давайте рассмотрим, какие значения A дадут ровно 2 "YES".

"YES" получается, если s > 10 ИЛИ t > A.

Запуски, где s > 10: (11, 2), (11, 12). Эти два запуска всегда дают "YES".

Остальные 7 запусков дадут "YES", если t > A:

  • (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

Нам нужно, чтобы из этих 7 запусков ровно 0 дали "YES". Это значит, что для всех этих 7 запусков должно быть t ≤ A.

Значения t: 2, 12, -12, 12, 11, 10, 5.

Максимальное значение t здесь равно 12.

Следовательно, чтобы все эти 7 запусков дали "NO", A должно быть ≥ 12.

Наименьшее такое целое значение A равно 12.

При A = 12:

  • (1, 2): s=1≤10, t=2≤12 -> NO
  • (11, 2): s=11>10 -> YES
  • (1, 12): s=1≤10, t=12≤12 -> NO
  • (11, 12): s=11>10 -> YES
  • (-11, -12): s=-11≤10, t=-12≤12 -> NO
  • (-11, 12): s=-11≤10, t=12≤12 -> NO
  • (-12, 11): s=-12≤10, t=11≤12 -> NO
  • (10, 10): s=10≤10, t=10≤12 -> NO
  • (10, 5): s=10≤10, t=5≤12 -> NO

Общее количество "YES" при A = 12 равно 2.

Таким образом, наименьшее целое значение A, при котором программа напечатает "YES" два раза, равно 12.

Ответ: 12

ГДЗ по фото 📸
Подать жалобу Правообладателю