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