​​Задача «KitKat-подарок на День рождения»

#конкурс



Итак, для участия в конкурсе, необходимо решить следующую задачу:



Аня очень любит KitKat, и у неё недавно появилась фабрика, которая делает KitKat. Также у неё есть друг Лёша, которому она, без сомнения, подарит свой любимый батончик. Но с некоторыми условиями.



Плитка KitKat — это последовательность целых чисел — C длиной N. И Аня решает подарить непрерывную часть этой шоколадки Лёше так, чтобы длина этого сегмента соответствовала месяцу рождения Леши (M), а сумма целых чисел на квадратах была равно его дню рождения (D).



Вам нужно завершить функцию func, которая возвращает число способов, которыми Аня может разделить её плитку KitKat.



Входные данные

N — длина KitKat;

C — последовательность чисел, то есть плитка KitKat;

D — день рождения;

M — месяц рождения.



Выходные данные

Целое число способов, которыми можно разделить плитку шоколада.



Ограничения

1 <= N <=100

1 <= Ci <=5, 0 <= i < N

1 <= D <= 31

1 <= M <= 12



Пример входных данных

5

1 2 1 3 2

3 2



Пример выходных данных

2



Объяснение

Аня хочет подарить Лёше последовательность из 2 частей KitKat, которые в сумме дают 3. Этому удовлетворяют следующие последовательности:

• C0 + C1 = 1+2 = 3

• C1 + C2 = 2+1 = 3



Шаблоны на языке Java и Kotlin



Условия конкурса

1. Решения принимаются в течении 48 часов, то есть до 1 апреля 2020 года, 18:00. Необходимо отправить только тело функции.

2. Отправить можно только одно решение.

3. Можно исправлять отправленное решение неограниченное количество раз. Принятым будет считаться решение, отправленное последним.

4. Победителем будет являться самое короткое тело функции func().

5. В подсчете количества символов учитывается только тело функции. Например, в примере return 0; количество символов равняется 9. Это и определяет длину решения.

6. Переименовывать функцию нельзя, как и изменять входные параметры. В Kotlin убирать return также запрещается.

7. Требований к форматированию нет, важно рабочее решение. Можно убирать пробелы между переменными и писать код в одну строку, если это не нарушит работоспособность решения.

8. В случае одинаковых по длине решений, победитель будет выбран рандомно, а запись с выбором победителя будет опубликована на канале.



Обратите внимание, что решения, которые не удовлетворяют условиям конкурса не будут учитываться при проверке. Очень часто участники забывают о том, что нужно отправить только внутреннюю часть функции (тело функции), а не всю функцию, включая её заголовок, поэтому будьте внимательны при отправке итогового решения.



Также, если кто-то хочет помочь в проверке решений при помощи тестов, то пишите сюда.



Решение нужно отправить в форму. Желаю всем удачи!