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