Logo
(追記) (追記ここまで)

29132번 - Урок физкультуры 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB1512770.000%

문제

На очередном уроке физкультуры Фома придумал интересное занятие.

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

  • Каждая группа --- это подотрезок шеренги. То есть школьники в группе стоят в шеренге подряд.
  • Группы не пересекаются.
  • В каждой группе последовательность персональных номеров школьников либо нестрого возрастает, либо нестрого убывает.

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

입력

В первой строке входного файла задано число $n$ (1ドル \le n \le 5000$) --- количество школьников. Во второй строке содержатся $n$ чисел $a_1, a_2, \ldots, a_n$ (1ドル \le a_i \le 10^9$) --- персональный номер каждого школьника.

출력

В единственной строке выходного файла выведите одно число --- количество способов разделить школьников на группы. Ответ может быть очень большой, поэтому нужно вывести его по модулю 10ドル^9+7$.

제한

예제 입력 1

4
1 2 3 4

예제 출력 1

8

예제 입력 2

5
1 2 2 2 1

예제 출력 2

15

예제 입력 3

5
1 2 1 2 1

예제 출력 3

8

힌트

출처

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2014-2015 Season > November 23, 2014 > Basic D번

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2014-2015 Season > November 23, 2014 > Advanced E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /