ДАМ 100 БАЛЛОВ
НА ЛЮБОМ ЯЗЫКЕ!
Задача 10: Ремонт забора
Забор состоит из N одинаковых вертикальных досок. Некоторые из досок сгнили и нуждаются в замене, для каждой доски известно, нужно ли её заменить. Для ремонта забора можно использовать продающиеся в магазине щиты, которые бывают L разных видов: шириной в 1 доску, в 2 доски, ., в L досок. Щит нельзя разрезать на части, то есть одним щитом можно заменить не более любых L подряд идущих досок. При этом можно менять не только сгнившие доски, но и хорошие.
Оказалось, что все щиты стоят одинаково, независимо от размера щита. Определите, какое наименьшее число щитов необходимо приобрести, чтобы починить весь забор.
Входные данные
Первая строка входных данных содержит целое число L (L > 0) – максимальный размер щита. Во второй строке входных данных записано целое число N (N > 0) – количество досок в заборе. Следующие N строк содержат по одному числу, равному 0 или 1. Число 1 обозначает, что соответствующая доска в заборе нуждается в замене, число 0 – что доска может быть сохранена.
Выходные данные
Программа должна вывести одно целое число – минимальное число щитов, которое необходимо приобрести для ремонта всего забора.
Система оценивания
Решение, правильно работающее только для случаев, когда числа L и N не превосходят 1000, будет оцениваться в 6 баллов.
В 10 баллов будет оцениваться решение, правильно работающее, когда числа L и N не превосходят 105.
Пример
Ввод Вывод Пояснение
3
8
0
0
1
0
1
0
1
0
2
Максимальная ширина одного щита равна 3. Забор состоит из 8 досок, нужно заменить доски с номерами 3, 5 и 7. Для этого достаточно двух щитов, например, одним щитом меняем доски с номерами 3, 4, 5, а другим щитом меняем доску с номером 7.
Ответ: Давайте спочатку побудуємо блок-схему для розв’язання задачі:
1. **Початок**
2. Введення значень а, в, с (розмірів листа жерсті та маси за 1 см²)
3. Обчислення площі листа: (S = a times a)
4. Обчислення об’єму коробки: (V = S times b)
5. Обчислення маси коробки: (M_{text{коробки}} = V times c)
6. Виведення результату маси коробки
7. **Кінець**
71%
Тепер реалізуємо програму мовою Python:
«python
# Введення значень
a = float(input(«Введіть розмір листа жерсті (а): «))
b = float(input(«Введіть висоту коробки (b): «))
c = float(input(«Введіть масу 1 см2 жерсті (с): «))
# Обчислення площі листа S=a*a
# Обчислення об’єму коробки V = S * b
# Обчислення маси коробки M_korobky = V * c
# Виведення результату print(f»Маса коробки: {M_korobky) r»)
Ця програма Python введе розміри листа жерсті (а), висоту коробки (b) та масу 1 см² жерсті (с), а потім обчислить та виведе масу коробки
Объяснение:
# Задані значення
a = 120 # Розмір сторони квадратного листа жерсті в см
b = 20 # Висота коробки в см
c = 0.4 # Маса 1 см² жерсті в г
# Знаходимо площу квадратного листа
площа_листа = a ** 2
# Знаходимо об’єм коробки (об’єм прямокутної паралелепіпеда)
об’єм_коробки = площа_листа * b
# Знаходимо масу коробки (маса жерсті за 1 см² помножена на загальну площу)
маса_коробки = об’єм_коробки * c
# Виводимо результат
print(«Маса коробки:», маса_коробки, «г»)