Вопрос:

C++ #include <iostream> using namespace std; int main() { int s, t, A; cin >> s; cin >> t; cin >> A; if (s > 10 || t > A) cout << "YES" << endl; else cout << "NO" << endl; return 0; } Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (-12, 11); (10, 10); (10, 5). Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» два раза.

Ответ:

Решение:

Программа напечатает "YES", если условие (s > 10 || t > A) истинно. Это означает, что "YES" будет напечатано, если s больше 10 ИЛИ t больше A.

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

Анализ пар (s, t):

  1. (1, 2): s = 1, t = 2. Условие: (1 > 10 || 2 > A). Это истинно, если 2 > A.
  2. (11, 2): s = 11, t = 2. Условие: (11 > 10 || 2 > A). Так как 11 > 10 истинно, это условие всегда истинно, независимо от A.
  3. (1, 12): s = 1, t = 12. Условие: (1 > 10 || 12 > A). Это истинно, если 12 > A.
  4. (11, 12): s = 11, t = 12. Условие: (11 > 10 || 12 > A). Так как 11 > 10 истинно, это условие всегда истинно, независимо от A.
  5. (-11, -12): s = -11, t = -12. Условие: (-11 > 10 || -12 > A). Это истинно, если -12 > A.
  6. (-11, 12): s = -11, t = 12. Условие: (-11 > 10 || 12 > A). Это истинно, если 12 > A.
  7. (-12, 11): s = -12, t = 11. Условие: (-12 > 10 || 11 > A). Это истинно, если 11 > A.
  8. (10, 10): s = 10, t = 10. Условие: (10 > 10 || 10 > A). Это истинно, если 10 > A.
  9. (10, 5): s = 10, t = 5. Условие: (10 > 10 || 5 > A). Это истинно, если 5 > A.

Пары, для которых s > 10 всегда истинно, независимо от A: (11, 2) и (11, 12). Это уже 2 случая, когда будет напечатано "YES".

Теперь нам нужно, чтобы еще ровно два случая из оставшихся дали "YES".

Оставшиеся случаи, где s <= 10, и условие зависит от 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 условий ровно 2 были истинными. Нас интересует наименьшее целое A. Чем меньше A, тем больше условий X > A будет истинно.

Давайте перечислим условия, которые должны быть истинными, чтобы получить ровно 2 "YES" из оставшихся 7:

Рассмотрим граничные значения для A.

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

При A = 11, два условия истинны (для пар (1, 12) и (-11, 12)). В сумме с двумя всегда истинными случаями (11, 2) и (11, 12), получаем 4 "YES". Это не подходит.

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

Подать жалобу Правообладателю