Паскаль Задача 3. Ремонт забора Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 512 мегабайт
Забор состоит из N одинаковых вертикальных досок. Некоторые из досок сгнили и нуждаются в
замене, для каждой доски известно, нужно ли её заменить. Для ремонта забора можно использовать
продающиеся в магазине щиты, которые бывают L разных видов: шириной в 1 доску, в 2 доски, ...,
в L досок. Щит нельзя разрезать на части, то есть одним щитом можно заменить не более любых
L подряд идущих досок. При этом можно менять не только сгнившие доски, но и хорошие.
Оказалось, что все щиты стоят одинаково, независимо от размера щита. Определите, какое наименьшее число щитов необходимо приобрести, чтобы починить весь забор.
Формат входных данных
Первая строка входных данных содержит целое число L (L > 0) — максимальный размер щита.
Во второй строке входных данных записано целое число N (N > 0) — количество досок в заборе.
Следующие N строк содержат по одному числу, равному 0 или 1. Число 1 обозначает, что соответствующая доска в заборе нуждается в замене, число 0 — что доска может быть сохранена.
Формат выходных данных
Программа должна вывести одно целое число — минимальное число щитов, которое необходимо
приобрести для ремонта всего забора.
Система оценивания
Решение, правильно работающее только для случаев, когда числа L и N не превосходят 1000,
будет оцениваться в
В будет оцениваться решение, правильно работающее, когда числа L и N не превосходят 105
.
Пример
стандартный ввод стандартный вывод
3
8
0
0
1
0
1
0
1
0
3
Пояснение к примеру
Максимальная ширина одного щита равна 3. Забор состоит из 8 досок, нужно заменить доски
с номерами 3, 5 и 7. Для этого достаточно двух щитов, например, одним щитом меняем доски с
номерами 3, 4, 5, а другим щитом меняем доску с номером 7
Программа:
k=0 #начальное значение счетчика
while True: #открываем бесконечный цикл
x=int(input()) #вводим целое число
if x==0: #если введено число 0
break #то останавливаем цикл
elif x%7==0: #иначе, если число кратно 7 (т.е. делится без остатка)
k+=1 #увеличиваем счетчик на 1
print(k) #вывод значения счетчика
ответ:Можно управлять чем-то вручную, а можно запрограммировать и надеяться, что все сработает как надо. В быту широко используется программное управление для выполнения стандартных операций. Например выбор режим стирки в стиральной машине. При выборе того или иного режима активируется соответствующая программа и удобно.
Точно также производится готовка в мультиварке. Но когда требуется сделать что-то, чего не учитывает программа, делать приходится вручную.
При всей универсальности программа не может учесть всего. Всегда приходится что-то корректировать. Поэтому на практике приходится прибегать к обоим методам. Особенно, когда ручное управление затруднено. Так происходит, например при управлении марсоходом. Радиосигнал идет довольно долго и порулить" марсоходом с земли в реальном времени не получится. Приходится отправлять блок команд и принимать сигнал о их выполнении.
В общем, вручную безусловно лучше, но не всегда возможно.