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