Задание №6 — Алгоритмы и программирование
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык | Паскаль |
алг нач цел s, t, A ввод s ввод t ввод A если s > А или t > 11 то вывод "YES" иначе вывод "NO" все кон | var s,t, A: integer; begin readln(s); readln(t); readln(A); if (s > А) or (t > 11) then writeln('YES') else writeln('NO') end. |
Бейсик | Python |
DIM s, t, A AS INTEGER INPUT s INPUT t INPUT A IF s > А OR t > 11 THEN PRINT "YES" ELSE PRINT "NO" ENDIF | s = int(input()) t = int(input()) A = int(input()) if (s > А) or (t > 11): 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 > А || t > 11) cout << "YES" << endl; else cout << "NO" << endl; return 0; } | |
Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
(–9, 11); (2, 7); (5, 12); (2, –2); (7, –9); (12, 6); (9, –1); (7, 11); (11, –5).
Укажите наименьшее целое значение параметра А, при котором для указанных входных данных программа напечатает «NO» шесть раз.
Правильный ответ
9
Пояснение
Решение.
Разберём условие задачи. Программа выводит «YES», если истинно хотя бы одно из условий: или . В противном случае программа выводит «NO».
Нам нужно найти такое наименьшее целое значение , при котором программа выведет «NO» ровно 6 раз. Программа выводит «NO», когда оба условия ложны одновременно, то есть выполняется составное условие: И .
1. Проанализируем второе условие для всех 9 запусков (пары чисел ):
1) : — Истина.
2) : — Истина.
3) : — Ложь. (Здесь всегда будет «YES», так как ).
4) : — Истина.
5) : — Истина.
6) : — Истина.
7) : — Истина.
8) : — Истина.
9) : — Истина.
2. Мы видим, что в запуске №3 условие ложно, значит, при любом этот запуск даст «YES». Остаётся 8 запусков, в которых условие по переменной выполняется. Чтобы получить ровно 6 ответов «NO», нам нужно, чтобы в 6 из этих 8 оставшихся запусков выполнялось условие , а в остальных 2 запусках оно было ложным.
3. Выпишем значения для тех 8 запусков, где :
.
Упорядочим их по возрастанию: .
4. Чтобы условие выполнилось ровно для 6 значений из этого ряда, число должно быть больше или равно шестому числу в ряду, но меньше седьмого числа.
Шестое число в ряду: .
Седьмое число в ряду: .
Следовательно, .
5. Нам необходимо найти наименьшее целое значение , удовлетворяющее этому промежутку. Это число .
Проверим: при условие выполнится для (6 значений). Для и условие будет ложным, и программа выведет «YES».
Ответ: 9
Источник: ФИПИ