Вопрос задан 13.07.2019 в 23:09. Предмет Информатика. Спрашивает Коротков Виталик.

Паскаль! Помогите пожалуйста! Провода Дано N отрезков провода длиной L1, L2, ..., LN сантиметров.

Требуется с помощью разрезания получить из них K равных отрезков как можно большей длины, выражающейся целым числом сантиметров. Если нельзя получить K отрезков длиной даже 1 см, вывести 0. Ограничения: 1 <= N <= 10 000, 1 <= K <= 10 000, 100 <= Li <= 10 000 000, все числа целые. Входные данные В первой строке находятся числа N и К. В следующих N строках - L1, L2, ..., LN, по одному числу в строке. Выходные данные Вывести одно число - полученную длину отрезков.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ольта Катя.
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var ЕстьКусков,НадоКусков:integer;
  Readln(ЕстьКусков,НадоКусков);
  var Длины:=ReadArrInteger(ЕстьКусков);
  var ОбщаяДлина:=Длины.Sum;
  if НадоКусков>ОбщаяДлина then Writeln(0)
  else begin
    var ДлинаКуска:=ОбщаяДлина div НадоКусков;
    repeat
      if Длины.Select(Кусок->Кусок div ДлинаКуска).Sum >=НадоКусков then break
      else ДлинаКуска-=1;
    until false;
    writeln(ДлинаКуска)
    end
end.

Пример
4 11
802 743 457 539
200
0 0
Отвечает Олейников Владимир.
Решение в прикрепленном файле.

Ввод -вывод
5 12
6
7
8
9
10
длина отрезка: 3



0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос