1719: Інтервальні тренування

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 40
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type

В академії фізичної культури розробили новий метод інтервальних тренувань спортсменів. Відповідно до цього методу спортсмен повинен тренуватися щодня, проте зростання навантаження повинно постійно змінюватися його зменшенням і навпаки. План тренування являє собою набір цілих додатних чисел \(a_1, a_2,. . . , a_m\), де \(a_i\) описує навантаження спортсмена в \(i\)-й день. Будь-які два сусідніх дні повинні мати різне навантаження: \(a_i \neq a_{i + 1}\). Щоб зростання навантаження і його зменшення чергувалися, для \(i\) від 1 до \(m - 2\) має виконуватися така умова: якщо \(a_i < a_{i + 1}\), то \(a_{i + 1} > a_{i + 2}\), якщо ж \(a_i > a_{i + 1}\), то \(a_{i + 1} < a_{i + 2}\).

Сумарне навантаження в процесі виконання плану повинне складати \(n\), тобто \(a_1 + a_2 +. . . + A_m = n\). Обмеження на кількість днів у плані немає, \(m\) може бути будь-яким, але навантаження в перший день тренувань зафіксоване: \(a_1 = k\). Перш ніж приступити до тестування нового методу, керівництво академії хоче з'ясувати, скільки різних планів тренувань задовольняє описаним обмеженням.

Потрібно написати програму, яка за заданими \(n\) і \(k\) визначає, скільки різних планів тренувань задовольняють описаним обмеженням, і виводить залишок від ділення кількості таких планів на числа \(10^9 + 7\).

Формат вхідних даних

У першому рядку вхідних даних знаходяться цілі числа \(n\), \(k\) (\(1 \le n \le 5000\), \(1 \le k \le n\)).

Формат вихідних даних

Виведіть одне число: залишок від ділення кількості планів тренувань на \(10^9 + 7\).

Примітка

У першому прикладі підходять наступні плани: [2, 1, 2, 1], [2, 1, 3], [2, 3, 1], [2, 4].

У другому прикладі єдиний план [3].

Scoring

Підзадача 1: 23 бали, \(1 \le n \le 10\);

Підзадача 1: 20 балів, \(1 \le n \le 30\),

Підзадача 1: 23 бали, \(1 \le n \le 500\),

Підзадача 1: 34 бали, \(1 \le n \le 5000\),

Приклад вхідних даних

6 2

Приклад вихідних даних

4

Приклад вхідних даних

3 3

Приклад вихідних даних

1

Коментарі

Ще немає коментарів.