Задача на паскале. Батарея состоит из прямоугольных обогревательных секций. Все секции имеют одинаковый размер и одинаковую мощность. Однако, ремонт батареи, в случае выхода из строя одной из секции - очень трудоемкая задача, поэтому на складе запчастей, батарейные блоки бывают L разных видов: шириной в 1 секцию, в 2 секции, ...,в L секций. Такой блок из нескольких секций нельзя разрезать на части, то есть одним блоком можно заменить не более любых L подряд идущих секций. При этом можно менять не только неисправные секции, но и хорошие(стоимость блоков учитывать не будем - работа все-равно выходит дороже). Определите, какое наименьшее число блоков необходимо взять мастеру, чтобы починить всю батарею.
Формат ввода
Первая строка входных данных содержит целое число L(L > 0) - максимальный размер батарейного блока. Во второй строке входных данных записано целое число N(N > 0) - количество секций в заборе. Следующие N строк содержат по одному числу, равному 0 или 1. Число 1 обозначает, что соответствующая секция в батарее нуждается в замене, число 0 - что секция может быть сохранена.
Формат вывода
Программа должна вывести одно целое число - сумму введенных чисел N и M.
Пример
Ввод Вывод
3 2
8
0
0
1
0
1
0
1
0
Как известно, растровое (точечное) изображение формируется из отдельных элементов. На экране монитора и в графических пакетах эти элементы называют пикселями (pixel - PICture'S ELement -> PIX ELement - элемент изображения). А на печати, так уж повелось еще с докомпьютерных времен, элементы изображения зовутся точками.
Чем больше точек в изображении, тем оно качественнее. Плотность печати на принтере - это количество точек, которые принтер печатает на отрезке определенной длины, обычно равном 1 дюйму. Дюйм - это внесистемная неметрическая единица длины, исторически пришедшая из Англии. Английский дюйм (inch) равен 25.4 мм.
Стандартная плотность печати для качественного изображения должна составлять не менее 300 dpi, т.е. на каждом дюйме принтер размещает 300 точек. Такая плотность принята, например, при печати фотографий в ателье. Высококачественная печать oсуществляется с плотностью 600 и даже 1200 dpi.
// Внимание! Если программа не работает, обновите версию!
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