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