Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Интервальные тренировки

(Время: 5 сек. Память: 512 Мб Сложность: 55%)

В академии физической культуры разработали новый метод интервальных тренировок спортсменов. В соответствии с этим методом спортсмен должен тренироваться каждый день, однако рост нагрузки должен постоянно сменяться её снижением и наоборот.

План тренировки представляет собой набор целых положительных чисел a1, a2, ... , am, где ai описывает нагрузку спортсмена в i-й день. Любые два соседних дня должны иметь различную нагрузку: ai ≠ ai+1. Чтобы рост нагрузки и её снижение чередовались, для i от 1 до m-2 должно выполняться следующее условие: если ai < ai+1, то ai+1 > ai+2, если же ai > ai+1, то ai+1 < ai+2.

Суммарная нагрузка в процессе выполнения плана должна составлять n, то есть a1 + a2 + ... + am = n. Ограничения на количество дней в плане нет, m может быть любым, но нагрузка в первый день тренировок зафиксирована: a1 = k.

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

Требуется написать программу, которая по заданным n и k определяет, сколько различных планов тренировок удовлетворяют описанным ограничениям, и выводит остаток от деления количества таких планов на число 109+7.

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

В первой строке входного файла INPUT.TXT находятся целые числа n и k (1 ⩽ n ⩽ 5000, 1 ⩽ k ⩽ n).

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

В выходной файл OUTPUT.TXT выведите одно число: остаток от деления количества планов тренировок на 109+7.

Примеры

INPUT.TXTOUTPUT.TXT
16 24
23 31

Пояснения к примерам

В первом примере подходят следующие планы: [2, 1, 2, 1], [2, 1, 3], [2, 3, 1], [2, 4].

Во втором примере единственный подходящий план [3].


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 2019 / 2020
 A. Два измерения
 B. Полные квадраты
 C. Автоматизация склада
 D. Машинное обучение
 E. Неисправный марсоход
 F. Интервальные тренировки
 G. Экспедиция
 H. Разбиение на пары

Красноярский краевой Дворец пионеров, (c)2006 - 2020, E-mail: admin@acmp.ru