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


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.

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

  • Возможны три случая:
    • a > b
    • a < b
    • a == b
  • Во всех случаях достаточно одной проверки:
    • если a > b, печатаем a;
    • иначе печатаем b.
  • Когда числа равны, можно вывести любое из них, потому что они одинаковые. В ветке else как раз выводится b, и это корректно.

3. Алгоритм

  1. Считать два целых числа a и b.
  2. Проверить условие a > b.
  3. Если условие истинно, вывести a.
  4. Иначе вывести b.

4. Почему это работает

Рассмотрим все возможные ситуации:

  • Если a > b, то по определению большее число — это a. Алгоритм выводит a.
  • Если a <= b, то большее число — это b:
    • при a < b число b действительно больше;
    • при a == 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)

Комментарии

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