Задание №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).
Укажите наибольшее целое значение параметра А, при котором для указанных входных данных программа напечатает «YES» два раза.
Правильный ответ
12
Пояснение
Решение.
Разберём условие задачи. Программа выводит «YES», если истинно хотя бы одно из двух условий, соединённых логическим оператором OR (ИЛИ):
1)
2)
Нам даны 9 пар чисел . Проверим второе условие () для каждой пары, так как оно не зависит от параметра :
1) : — Ложь
2) : — Ложь
3) : — Ложь
4) : — Ложь
5) : — Ложь
6) : — Ложь
7) : — Ложь
8) : — Ложь
9) : — Истина
Мы видим, что для последней пары условие выполняется, значит, программа уже выдаёт «YES» один раз независимо от значения .
По условию задачи программа должна напечатать «YES» ровно два раза. Так как один раз «YES» уже обеспечен девятой парой, нам нужно, чтобы среди оставшихся восьми пар условие выполнилось ровно для одной пары.
Выпишем значения для первых восьми пар в порядке убывания, чтобы найти подходящее :
Чтобы условие выполнилось только для одного числа из этого списка, этим числом должно быть самое большое значение , то есть .
Следовательно, должны выполняться два требования:
1) Для самого большого условие истинно:
2) Для следующего по величине условие уже ложно:
Объединим эти неравенства в систему: .
Целыми решениями для являются числа и .
В задаче просят указать наибольшее целое значение . Сравнивая и , выбираем .
Ответ: 12
Источник: ФИПИ