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