Interval məşqləri
Akademiyada fiziki mədəniyyət üzrə yeni bir idmançıların intervallı məşq metodu hazırlanmışdır. Bu metoda əsasən, idmançı hər gün məşq etməlidir, lakin yükün artması daim onun azalması ilə əvəz olunmalı və əksinə olmalıdır.
Məşq planı a[1]
, a[2]
, ..., a[m]
kimi tam müsbət ədədlər dəstəsindən ibarətdir, burada a[i]
idmançının i-ci gündəki yükünü təsvir edir. Hər hansı iki qonşu gün fərqli yükə malik olmalıdır: a[i]
≠ a[i+1]
. Yükün artması və azalması növbələşməsi üçün i-dən 1-ə qədər m - 2 üçün aşağıdakı şərt yerinə yetirilməlidir: əgər a[i]
< a[i+1]
, onda a[i+1]
> a[i+2]
, əgər a[i]
> a[i+1]
, onda a[i+1]
< a[i+2]
.
Planın icrası zamanı ümumi yük n olmalıdır, yəni a[1]
+ a[2]
+ ... + a[m]
= n. Günlərin sayına məhdudiyyət yoxdur, m istənilən ola bilər, lakin məşqlərin ilk günündəki yük sabitdir: a[1]
= k.
Yeni metodun test edilməsinə başlamazdan əvvəl, akademiya rəhbərliyi göstərilən məhdudiyyətlərə cavab verən neçə müxtəlif məşq planının olduğunu öyrənmək istəyir.
Verilmiş n və k-yə əsasən, göstərilən məhdudiyyətlərə cavab verən neçə müxtəlif məşq planının olduğunu müəyyən edən və bu planların sayının 10^9
+ 7-yə bölünməsindən qalanı çıxaran bir proqram yazın.
Giriş məlumatları
İki tam ədəd n və k (1 ≤ n ≤ 5000, 1 ≤ k ≤ n).
Çıxış məlumatları
Bir ədəd çıxarın: məşq planlarının sayının 10^9
+ 7-yə bölünməsindən qalan.
İzah
Birinci nümunədə uyğun planlar bunlardır: [2, 1, 2, 1], [2, 1, 3], [2, 3, 1], [2, 4].
İkinci nümunədə yeganə uyğun plan [3].