Найти в Дзене

Задача 7. Золото племени АББА

Предлагаю на примере этой задачи (с сайта acmp.ru) на длинную арифметику посмотреть, как знание разных языков программирования помогает проще и быстрее получать заветный Accepted. Эта задача находится в разделе "длинная арифметика", но стоит оговориться, что никаких арифметических операций с длинными числами здесь делать не надо, только операцию сравнения. Самым простым решение будет на языке Python, потому что в нём длинная арифметика есть "из коробки". И это, к сожалению, убивает всю изначальную соль задачи. Но в очередной раз напомню, что надо осторожно считать асимптотическую сложность своего решения, когда дело доходит до длинных чисел. В этом решении всё банально просто: считываем данные, приводим их к целым числам и находим максимум стандартной функцией. По такой же схеме работает и решение на Java. Только здесь уже нет длинной арифметики "из коробки", а надо использовать специальный тип данных BigInteger, работа с которым не отличается особым удобством и лаконичностью. Но больш

Предлагаю на примере этой задачи (с сайта acmp.ru) на длинную арифметику посмотреть, как знание разных языков программирования помогает проще и быстрее получать заветный Accepted.

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Эта задача находится в разделе "длинная арифметика", но стоит оговориться, что никаких арифметических операций с длинными числами здесь делать не надо, только операцию сравнения.

Самым простым решение будет на языке Python, потому что в нём длинная арифметика есть "из коробки". И это, к сожалению, убивает всю изначальную соль задачи. Но в очередной раз напомню, что надо осторожно считать асимптотическую сложность своего решения, когда дело доходит до длинных чисел.

Решение на Python
Решение на Python

В этом решении всё банально просто: считываем данные, приводим их к целым числам и находим максимум стандартной функцией.

По такой же схеме работает и решение на Java. Только здесь уже нет длинной арифметики "из коробки", а надо использовать специальный тип данных BigInteger, работа с которым не отличается особым удобством и лаконичностью.

Решение на Java
Решение на Java

Но больше всего сложностей должно возникнуть у программистов на C++, потому что там даже в STL нет работы с длинными числами. К счастью, в этой задаче нужна только операция сравнения, а числа даны без ведущих нулей. В таком случае удобнее вообще не переводить строки в числа. Тогда можно использовать обычное (лексикографическое) сравнение строк, но прежде убедиться, что количество разрядов в числах одинаковое.

Решение на C++
Решение на C++

Кажется, что в этом решении тоже нечего больше комментировать.

Учите языки, решайте задачи.

Предыдущий выпуск: Задача 362. Открытка и конверт

Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.