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