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