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