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