Рыцари принесли принцессе подарки. Воинов было очень много, поэтому принцесса принимала рыцарей по K человек в день (в последний день их могло остаться меньше).
Есть количество рыцарей N и последовательность из N чисел — подарки, которые принёс каждый из N рыцарей. В последней строке записано число K.
Составь список с общим количеством подарков, полученных в каждый из дней по порядку, и выведи его.
Чтобы решить задачу, давайте разобьем ее на несколько шагов. Мы имеем N рыцарей, и каждый из них принес определенное количество подарков. Принцесса принимает K рыцарей в день, и нам нужно подсчитать общее количество подарков, полученных в каждый день.
**1. Понимание ввода данных:**
- Первое число (N) — сколько всего рыцарей.
- Следующие N чисел — это количество подарков от каждого рыцаря.
- Последнее число (K) — сколько рыцарей может быть принято в день.
**2. Алгоритм решения:**
- Начнем с того, что будем обрабатывать данные по частям, принимая по K рыцарей за раз.
- Для каждого "дня" мы будем подсчитывать общее количество подарков и добавлять его в список.
**3. Пример:**
- Пусть у нас есть входные данные:
```
N = 7
подарки = [1, 2, 3, 4, 5, 6, 7]
K = 3
```
**4. Решение пошагово:**
1. Инициализируем пустой список для хранения количества подарков каждого дня.
2. Проходим по списку подарков с шагом K.
3. Для каждой группы из K подарков (или оставшихся подарков, если их меньше K) вычисляем сумму и добавляем в список.
**5. Реализация:**
```python
def count_gifts(presents, K):
days = []
for i in range(0, len(presents), K):
# Сумируем подарки от K рыцарей
day_gifts = sum(presents[i:i+K])
days.append(day_gifts)
return days
# Пример входных данных
N = 7
gifts = [1, 2, 3, 4, 5, 6, 7]
K = 3
# Получаем количество подарков по дням
result = count_gifts(gifts, K)
print(result) # Вывод: [6, 15, 7]
```
**6. Объяснение кода:**
- Функция `count_gifts` принимает два аргумента: список с количеством подарков (`presents`) и число рыцарей в день (`K`).
- Мы используем конструкцию `for i in range(0, len(presents), K)`, чтобы пройти по списку с шагом K.
- `presents[i:i+K]` выбирает подсписок из K элементов, начиная с индекса i. Если элементов остается меньше K (как в последней итерации), Python сам отберет только доступные элементы.
- Используя встроенную функцию `sum`, мы суммируем количество подарков и добавляем результат в список `days`.
- В конце функция возвращает список с результатами.
Таким образом, мы можем подсчитывать подарки, которые принцесса получает за каждый день, принимая по K рыцарей одновременно.