Рабочая тетрадь Лизы

Лиза только что получила новую рабочую тетрадь по математике. Рабочая тетрадь содержит задачи с упражнениями, сгруппированные по главам. Лиза считает задачу особенной, если ее индекс (в пределах главы) совпадает с номером страницы, на которой она находится. Формат книги Лизы следующий:

  • В рабочей тетради Лизы есть n глав, пронумерованных от 1 до n.

  • В первой главе есть задачи arr[i], пронумерованные от 1 до n.

  • Каждая страница может содержать до k задач. Только последняя страница с упражнениями главы может содержать менее k задач.

  • Каждая новая глава начинается с новой страницы, поэтому одна страница никогда не будет содержать задач из более чем одной главы.

  • Индексация номеров страниц начинается с 1.

Учитывая данные о рабочей тетради Лизы, можете ли вы подсчитать количество специальных задач в ней?

Пример

arr = [4,2]
k=3
Войти в полноэкранный режим Выйти из полноэкранного режима

Например, рабочая тетрадь Лизы содержит arr[1]=4 задач для главы 1, и arr[2]=2 задач для главы 2. Каждая страница может содержать k=3 задач. Первая страница содержит 3 задачи для главы 1. Задача 1 находится на странице 1, поэтому она особенная. Страница 2 содержит только главу 1, задачу 4, поэтому на странице 2 нет специальной задачи. Проблемы главы 2 начинаются на странице 3, и там есть 2 проблемы. Поскольку на странице 3 нет задачи 3, на этой странице нет и специальной задачи. В рабочей тетради есть специальная проблема.

Описание функции
Заполните функцию рабочей книги в редакторе ниже. Она должна возвращать целое число, которое представляет собой количество специальных проблем в рабочей тетради.

workbook имеет следующий параметр(ы):

n: целое число, обозначающее количество глав.

Формат ввода

Первая строка содержит два целых числа n и k, количество глав и максимальное количество задач на странице.
Вторая строка содержит n разделенных пробелами целых чисел arr[i], где arr[i] обозначает количество задач в ith главе.

Формат вывода

Выведите количество специальных задач в рабочей тетради Лизы.

Ввод образца

5 3 
4 2 6 1 10
Войти в полноэкранный режим Выход из полноэкранного режима

Образец вывода

4
Вход в полноэкранный режим Выход из полноэкранного режима

Решение — ### Python

def readInts():
    return map(int, raw_input().strip().split(' '))

n, k = readInts()
ts = readInts()

# n = 5
# k = 3
# ts = [4, 2, 6, 1, 10]

ans = 0
pageNum = 1
for chapter, problems in enumerate(ts):
    pageLeft = k
    for problemId in xrange(1, problems+1):
        if pageNum == problemId:
            ans += 1
        pageLeft -= 1
        if pageLeft == 0:
            pageLeft = k
            pageNum += 1
    if pageLeft < k:
        pageNum += 1

print ans
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий