Помогите пожалуйста решить задачу на JavaScript. - вопрос №4468604
Петр Васильевич, директор ОАО «Рога и рога», собирается раздать премию всем менеджерам компании, он добрый и честный человек, поэтому хочет соблюсти следующие условия:
премия должна быть равной для всех менеджеров
должна быть максимально возможной и целой
должна быть выдана одной транзакцией с одного счета для каждого менеджера, без использования нескольких счетов для отправки одной премии
У Петра Васильевича открыто
<code>N</code>
корпоративных счетов, на которых лежат разные суммы денег
<code>Cn</code>
, а в компании работает
<code>M</code>
менеджеров. Необходимо выяснить максимальный размер премии, которую можно отправить с учетом условий. Если денег на счетах компании не хватит на то, чтобы выдать премию хотя бы по 1 у.е. — значит премии не будет, и нужно вывести 0.
Входные данные (поступают в стандартный поток ввода)
Первая строка — целые числа N и M через пробел (1≤N≤100 000, 1≤M≤100 000)
Далее N строк, на каждой из которых одно целое число Cn (0≤Cn≤100 000 000)
Проверка входных данных и обработка неправильных данных на входе не нужна, тестовые данные для проверки гарантированно подходят под описание выше
Выходные данные (ожидаются в стандартном потоке вывода)
Одно целое число, максимально возможная премия
Пример 1
Ввод:
<code>4 6 199 453 220 601 </code>
Вывод:
<code>200</code>
Пример 2
Ввод:
<code>2 100 99 1 </code>
Вывод:
<code>1</code>
Пример 3
Ввод:
<code>2 100 98 1 </code>
Вывод:
<code>0</code>
Примечания по оформлению решения
Возможно использование только стандартных библиотек языков, установки и использование дополнительных библиотек невозможны.
При отправке решений на Java необходимо назвать исполняемый класс
<code>Main</code>
. В решении не нужно указывать пакет.
Примеры работы со стандартными потоками ввода и вывода
Для JS можно использовать
<code>readline</code>
и
<code>console.log</code>
:
<code>const readline = require('readline').createInterface(process.stdin, process.stdout); let lineNum = 0; // Событие line и его обработчик будут вызваны последовательно один раз для каждой строки входных данных readline.on('line', (line) => { // Текущая строка в переменной line, здесь можно сохранить ее в другую переменную lineNum = lineNum + 1; if (lineNum < {количество строк}) { return; } // Сюда мы попадем, когда прочтем последнюю… console.log(result); readline.close(); }).on('close', () => process.exit(0)); </code>