Редакция для Максимум из двух чисел
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Автор:
1. Идея
Нужно прочитать два целых числа a и b и вывести большее из них.
Задача очень короткая: достаточно сравнить числа.
- Если
a > b, ответом будетa. - Иначе ответом будет
b.
Случай равенства тоже обрабатывается автоматически: если a == b, условие a > b ложно, значит программа выведет b, а оно равно a, то есть ответ верный.
2. Наблюдения
- Требуется вывести именно максимальное из двух чисел.
- Числа могут быть отрицательными, но это ничего не меняет: сравнение работает так же.
- Отдельно обрабатывать случай
a == bне обязательно, потому что оба значения одинаковы.
Пример:
1 2→ больше число25 5→ числа равны, можно вывести5-3 -7→ больше число-3
3. Алгоритм
- Считать
aиb. - Проверить, выполняется ли
a > b. - Если да, вывести
a. - Иначе вывести
b.
4. Почему это работает
Рассмотрим все возможные случаи:
- Если
a > b, то по определению максимумом являетсяa. Алгоритм выводитa. - Если
a <= b, то максимумом являетсяb. Алгоритм выводитb.
Других случаев нет, значит алгоритм всегда выводит наибольшее из двух чисел.
5. Сложность
Алгоритм выполняет одно сравнение, поэтому:
- время:
O(1) - память:
O(1)
6. Код на C++17
#include <iostream>
using namespace std;
int main() {
long long a, b;
cin >> a >> b;
if (a > b) {
cout << a;
} else {
cout << b;
}
return 0;
}
7. Код на Python 3
a, b = map(int, input().split())
if a > b:
print(a)
else:
print(b)
Комментарии