Top.Mail.Ru
Ответы

ПОМОГИТЕ с задачей по программированию . Олимпиада по информатике

Никита известен тем, что он отлично знает школьную программу по математике и умеет решать линейные уравнения любого уровня сложности. Для того, чтобы заинтересовать юного математика, учитель написал на доске два целых числа a и b и дал школьнику следующую задачу.
Учитель разрешил Никите не более, чем k раз выполнить одно из следующих действий:
1. Увеличить число a на единицу;
2. Увеличить число b на единицу.
Задача Никиты — выполнить разрешенные действия таким образом, чтобы максимизировать произведение двух полученных чисел. К сожалению, решить данную задачу самостоятельно школьнику не удалось, поэтому вам придется ему помочь.
Входные данные
Первая строка содержит одно целое число a (1≤a≤10^18) — первое число, которое учитель записал на доске.
Вторая строка содержит одно целое число b (1≤b≤10^18) — второе число, которое учитель записал на доске.
Третья строка содержит одно целое число k (0≤k≤10^18) — максимальное количество действий, которое может выполнить Никита.
Выходные данные
Так как максимальное произведение полученных чисел после выполнения не более, чем k операций может быть достаточно большим, вам не нужно выводить его.
Вместо этого выведите два целых числа c и d — полученные числа, произведение которых максимально. Для выведенных чисел должно быть верно, что c≥a, d≥b и (c−a)+(d−b)≤k.
В случае, если существует несколько оптимальных ответов, выведите любой из них.
Обратите внимание, что входные данные и ответ в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Система оценки
Помимо тестов из условия, данная задача содержит 25 тестов, каждый из которых будет независимо оцениваться в 4 балла.
Примеры
входные данные
Скопировать
5
9
0
выходные данные
Скопировать
5 9
входные данные
Скопировать
4
6
3
выходные данные
Скопировать
7 6
входные данные
Скопировать
5
5
2
выходные данные
Скопировать
6 6
Примечание
В первом примере k=0, поэтому Никита не может выполнить ни одного действия с данными числами. Таким образом, максимальное произведение чисел, записанных на доске, равно 5⋅9=45.
Во втором примере можно, например, три раза увеличить первое число на единицу. Можно показать, что полученное произведение 7⋅6=42 является максимальным.

По дате
По Рейтингу
Аватар пользователя
Новичок

Т.к. олимпиада дает какие-либо бонусы (т.е. преимущества), а получать преимущество не своей головой - есть мошенничество, то помогать с олимпиадой - есть участвовать в мошенничестве, а это - противозаконно. Так что извини, но если не знаешь, незачем участвовать в олимпиаде. А участвовать в мошенничестве вряд ли кто будет.

Поэтому, если не разбираешься - не надо участвовать в олимпиаде, а если часть заданий не знаешь - то умей проигрывать, пропусти их, не делай.

Единственное, что могу подсказать, что здесь нужно писАть программу.