Hasar İşləri#10885

Hasar İşləri

1 saniyə
256 meqabayt
Çətin

Fred Fermer həyətinin ətrafındakı hasarı yenidən dizayn etmək istəyir. Hasar müxtəlif hündürlükdə olan şaquli taxta parçalarından ibarətdir. -ci taxtanın hündürlüyü h_i~(1 \le h_i \le n)-dir.

Hasarı yenidən dizayn etmək üçün Fred aşağıdakı əməliyyatı hər hansı bir sayda (mümkün olan dəfə) təkrarlaya bilər:

Formal olaraq, [l, r] segmentinə əməliyyatı tətbiq etdikdən sonra bu segmentdəki taxtaların hündürlükləri aşağıdakı kimi olur:

h_i' = min(h_l, h_{l+1}, ..., h_r)~bütün~l \le i \le r~üçün

Fred bu əməliyyatı bir neçə dəfə tətbiq etməklə neçə müxtəlif hasar dizaynı əldə edə bilər? Cavab böyük ola biləcəyi üçün, 10^9 + 7 modulu ilə nəticəni çap edin.

İki hasar dizaynı və fərqlidir, əgər və arasında ən azı bir taxtanın hündürlüyü fərqlidirsə.

Giriş

Birinci sətir n~(1 \le n \le 3000), hasarda olan taxtaların sayını göstərən tam ədədini ehtiva edir.

İkinci sətir taxtaların başlanğıc hündürlüklərini göstərən müxtəlif tam ədədlər h_i~(1 \le h_i \le n, 1 \le i \le n) ehtiva edir.

Çıxış

Modul 10^9 + 7 ilə əldə edilə bilən müxtəlif hasar dizaynlarının sayını çap edin.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading

Nümunə 3

Loading
Loading