Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A если s > A или t > 12 то вывод "YES" иначе вывод "NO" все кон | var s, t, A: integer; begin readln(s); readln(t); readln(A); if (s > A) or (t > 12) then writeln('YES') else writeln('NO') end. |
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s > A OR t > 12 THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > A) or (t > 12): print("YES") else: print("NO") |
C++ | |
#include <iostream> using namespace std; int main() { int s, t, A; cin >> s; cin >> t; cin >> A; if (s > A || t > 12) cout << "YES" << endl; else cout << "NO" << endl; return 0; } | |
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13).
Укажите наибольшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» четыре раза.
Правильный ответ
5
Пояснение
Решение.
Разберём условие задачи. Программа выводит «YES», если выполняется хотя бы одно из двух условий: или . В противном случае программа выводит «NO».
Нам нужно найти такое наибольшее целое значение , при котором слово «NO» будет напечатано ровно 4 раза. Слово «NO» печатается тогда, когда оба условия ложны одновременно, то есть:
И .
Рассмотрим данные нам 9 пар чисел и проверим для каждой второе условие (), которое не зависит от переменной :
1) : — подходит для «NO», если .
2) : — подходит для «NO», если .
3) : — подходит для «NO», если .
4) : — подходит для «NO», если .
5) : — подходит для «NO», если .
6) : — подходит для «NO», если .
7) : — подходит для «NO», если .
8) : — подходит для «NO», если .
9) : — не подходит (всегда будет «YES», так как второе условие истинно).
Итак, у нас есть 8 пар-кандидатов, которые могут дать ответ «NO». Чтобы программа вывела «NO» ровно 4 раза, нам нужно выбрать такие значения , чтобы условие выполнялось ровно для 4 пар из этого списка. Выпишем значения для этих 8 пар в порядке возрастания:
.
Чтобы условие выполнилось ровно для четырех самых маленьких значений , параметр должен быть:
— больше или равен четвёртому числу в ряду ();
— меньше пятого числа в ряду ().
То есть: .
Проверим: если , то условие выполнится для пар со значениями . Это ровно 4 пары.
Если , то добавится пятая пара (), и «NO» выведется 5 раз, что нам не подходит.
Наибольшее целое значение , удовлетворяющее условию , — это число 5.
Ответ: 5
Источник: ФИПИ