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