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