Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A еслиs >10 или t > A то вывод "YES" иначе вывод "NO" все кон | var s, t, A: integer; begin readln(s); readln(t); readln(A); if (s > 10) or (t > A) 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 > A THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > 10) or (t > A): 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 > A) 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» два раза.
Правильный ответ
12
Пояснение
Решение. Рассмотрим условие, записанное в программе: или . Программа выводит «YES», если хотя бы одно из этих условий истинно.
Нам дано 9 пар чисел :
1)
2)
3)
4)
5)
6)
7)
8)
9)
Шаг 1. Проверим первую часть условия: .
Это условие выполняется для пар: (2) и (4) .
Таким образом, для этих двух пар программа уже выведет «YES» независимо от значения параметра .
Шаг 2. Анализ задачи.
По условию программа должна вывести «YES» ровно два раза. Мы уже нашли две пары (2 и 4), которые дают «YES» за счёт переменной . Это означает, что для всех остальных пар условие должно быть ложным. Если хотя бы для одной из оставшихся пар условие станет истинным, количество «YES» станет больше двух.
Шаг 3. Работа с оставшимися парами.
Выпишем значения для всех пар, кроме (2) и (4):
1)
3)
5)
6)
7)
8)
9)
Чтобы программа не вывела «YES» для этих пар, условие должно быть ложным для каждого из этих значений. Это значит, что должно быть больше или равно самому большому значению из этого списка.
Максимальное значение среди оставшихся пар равно (в парах 3 и 6).
Шаг 4. Нахождение .
Следовательно, должно выполняться условие: .
При условие будет ложным для всех , так как не больше .
Если мы возьмём , то для пар (3) и (6), где , условие станет истинным, и программа выведет «YES» уже 4 раза (пары 2, 4, 3, 6), что не подходит по условию.
Таким образом, наименьшее целое значение , при котором программа выведет «YES» ровно 2 раза, равно .
Ответ: 12
Источник: ФИПИ