Редакция для Максимум из двух чисел


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.

Автор: montes332

1. Идея

Нужно прочитать два целых числа a и b и вывести большее из них.

Задача очень короткая: достаточно сравнить числа.

  • Если a > b, ответом будет a.
  • Иначе ответом будет b.

Случай равенства тоже обрабатывается автоматически: если a == b, условие a > b ложно, значит программа выведет b, а оно равно a, то есть ответ верный.

2. Наблюдения

  1. Требуется вывести именно максимальное из двух чисел.
  2. Числа могут быть отрицательными, но это ничего не меняет: сравнение работает так же.
  3. Отдельно обрабатывать случай a == b не обязательно, потому что оба значения одинаковы.

Пример:

  • 1 2 → больше число 2
  • 5 5 → числа равны, можно вывести 5
  • -3 -7 → больше число -3

3. Алгоритм

  1. Считать a и b.
  2. Проверить, выполняется ли a > b.
  3. Если да, вывести a.
  4. Иначе вывести 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)

Комментарии

Еще нет ни одного комментария.