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