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