Контрольные задания > Задание № 6. Ниже приведена программа на языке программирования Python:
x = int(input())
y = int(input())
A = int(input())
if (x == 5) or (y > A):
print('YES')
else:
print('NO')
Её запускали 6 раз, в качестве значений переменных вводились эти пары чисел:
(5;13); (4; 1); (-1; 11); (6; 12); (5; 2); (16; 1).
Укажите наибольшее целое значение параметра А, при котором для таких входных данных программа напечатает YES 4 раза.
Вопрос:
Задание № 6. Ниже приведена программа на языке программирования Python:
x = int(input())
y = int(input())
A = int(input())
if (x == 5) or (y > A):
print('YES')
else:
print('NO')
Её запускали 6 раз, в качестве значений переменных вводились эти пары чисел:
(5;13); (4; 1); (-1; 11); (6; 12); (5; 2); (16; 1).
Укажите наибольшее целое значение параметра А, при котором для таких входных данных программа напечатает YES 4 раза.
Ответ:
Давайте проанализируем программу и определим, при каких значениях параметра A программа напечатает 'YES' 4 раза.
Программа выводит 'YES', если выполняется хотя бы одно из двух условий:
1. x == 5
2. y > A
Нам даны следующие пары чисел (x, y): (5, 13), (4, 1), (-1, 11), (6, 12), (5, 2), (16, 1).
Рассмотрим каждую пару и определим, когда будет выводиться 'YES':
1. (5, 13): x == 5, значит, всегда 'YES'.
2. (4, 1): x != 5, 'YES', если y > A, то есть 1 > A.
3. (-1, 11): x != 5, 'YES', если y > A, то есть 11 > A.
4. (6, 12): x != 5, 'YES', если y > A, то есть 12 > A.
5. (5, 2): x == 5, значит, всегда 'YES'.
6. (16, 1): x != 5, 'YES', если y > A, то есть 1 > A.
Мы хотим, чтобы 'YES' выводилось 4 раза. Два раза 'YES' гарантированно выводится из-за пар (5, 13) и (5, 2). Значит, нам нужно, чтобы ещё два раза 'YES' выводилось из-за условия y > A.
Чтобы получить ровно 4 вывода 'YES', нужно подобрать такое значение A, чтобы условие y > A выполнялось ровно для двух из оставшихся четырех пар.
У нас есть следующие условия для пар, где x != 5:
* (4, 1): 1 > A
* (-1, 11): 11 > A
* (6, 12): 12 > A
* (16, 1): 1 > A
Чтобы 'YES' выводилось 4 раза, нужно чтобы условие y > A выполнялось для двух пар из этих четырех. Это значит, что A должно быть меньше 11 и 12, но при этом условие 1 > A должно выполняться ровно дважды, чтобы всего было 4 вывода 'YES'.
Если A = 1, то условие y > A выполнится для пар (-1, 11) и (6, 12), то есть 11 > 1 и 12 > 1. В этом случае 'YES' будет выведено 4 раза (2 раза из-за x==5 и 2 раза из-за y>A).
Если A = 10, то условие y > A выполнится для пар (-1, 11) и (6, 12), то есть 11 > 10 и 12 > 10. В этом случае 'YES' будет выведено 4 раза (2 раза из-за x==5 и 2 раза из-за y>A).
Если A = 11, то условие y > A выполнится только для пары (6, 12), так как 12 > 11. В этом случае 'YES' будет выведено 3 раза (2 раза из-за x==5 и 1 раз из-за y>A).
Если A = 12, то условие y > A не выполнится ни для одной из пар, где x != 5. В этом случае 'YES' будет выведено 2 раза (только из-за x==5).
Нам нужно найти наибольшее целое A, при котором выводится 4 раза 'YES'.
Если A = 10:
* (5, 13): YES
* (4, 1): NO (1 > 10 - неверно)
* (-1, 11): YES (11 > 10)
* (6, 12): YES (12 > 10)
* (5, 2): YES
* (16, 1): NO (1 > 10 - неверно)
Всего 4 раза YES.
Если A = 11:
* (5, 13): YES
* (4, 1): NO
* (-1, 11): NO (11 > 11 - неверно)
* (6, 12): YES (12 > 11)
* (5, 2): YES
* (16, 1): NO
Всего 3 раза YES.
Таким образом, наибольшее целое значение A, при котором программа напечатает 'YES' 4 раза, равно 10.
Ответ: 10