Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A если s > 10 или t > А то вывод "YES" иначе вывод "NO" все кон | var s, t, A: integer; begin readln(s); readln(t); readln(A); if (s > 10) or (t > А) then writeln('YES') else writeln('NO') end. |
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s > 10 OR t > А THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > 10) or (t > А): 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 > 10 || t > А) 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).
Укажите наибольшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» три раза.
Правильный ответ
9
Пояснение
Решение.
Разберем условие задачи. Программа принимает на вход три целых числа: , и параметр . Условие вывода «YES» выглядит так: ИЛИ . Следовательно, программа выведет «NO», если оба этих условия ложны одновременно. То есть:
И .
Нам дано 9 пар чисел . Проанализируем первую часть условия () для каждой пары, чтобы понять, какие из них в принципе могут привести к ответу «NO»:
- (1, 2): — Истина. Пара подходит для «NO», если .
- (11, 2): — Ложь. Программа всегда выведет «YES» (так как ).
- (1, 12): — Истина. Пара подходит для «NO», если .
- (11, 12): — Ложь. Программа всегда выведет «YES».
- (–11, –12): — Истина. Пара подходит для «NO», если .
- (–11, 12): — Истина. Пара подходит для «NO», если .
- (–12, 11): — Истина. Пара подходит для «NO», если .
- (10, 10): — Истина. Пара подходит для «NO», если .
- (10, 5): — Истина. Пара подходит для «NO», если .
Мы видим, что пары 2 и 4 при любых дают «YES». Остается 7 пар, которые могут дать «NO». Выпишем значения для этих пар в порядке возрастания:
.
Чтобы программа вывела «NO» ровно 3 раза, условие должно выполняться ровно для трех значений из этого списка.
Это будут три самых маленьких значения: , , .
Для того чтобы эти три значения подходили, а четвертое () — нет, параметр должен удовлетворять системе неравенств:
(чтобы дало «NO»)
(чтобы уже дало «YES»).
Таким образом, . Наибольшее целое число в этом интервале — это .
Ответ: 9
Источник: ФИПИ