산

시간 제한1초메모리 제한1024 MB

요약
수열 A의 연속 부분수열 중 어느 한 지점까지 증가하다가 그 뒤로 감소하는 산 모양 부분수열의 개수를 구한다.
난이도

보통10점 중 7점

유형
배열, 투 포인터, 조합론, 구현
정답자
아직 제출이 없습니다

문제

온조는 산 오르는 것을 좋아하는 등반가이다. 그래서 온조는 길이가 NN인 수열 A_1,⋯ ,A_NA\_1, \cdots, A\_N에서 산 모양을 최대한 많이 찾으려고 한다.

만약 AA의 부분수열 A_l,⋯ ,A_r(l≤r)A\_l, \cdots, A\_r (l \le r)에 대해서, 어떤 정수 l≤k≤rl \le k \le r가 존재하여 A_l≤A_l+1≤⋯≤A_k≥⋯≥A_r−1≥A_rA\_l \le A\_{l+1} \le \cdots \le A\_k \ge \cdots \ge A\_{r-1} \ge A\_r을 만족한다면 이 부분수열이 산 모양이라고 하자.

온조를 도와 수열 AA가 주어지면 AA의 부분수열 중 산 모양인 것의 개수를 구하여라.

입력

첫째 줄에 수열 AA의 길이 NN이 주어진다.

둘째 줄에 NN개의 정수 A_1,⋯ ,A_NA\_1, \cdots, A\_N이 공백을 사이에 두고 주어진다.

출력

첫째 줄에 AA의 부분수열 중 산 모양인 것의 개수를 출력하라.

제한

  • 1≤N≤500 0001 ≤ N ≤ 500\ 000
  • 각 i(1≤i≤N)i (1 \le i \le N)에 대해, 1≤A_i≤1 000 000 0001 \le A\_i \le 1\ 000\ 000\ 000

예제3

  1. 예제 1

    입력
    5
    1 2 3 2 3
    
    예상 출력
    12
    
  2. 예제 2

    입력
    3
    100 100 100
    
    예상 출력
    6
    
  3. 예제 3

    입력
    7
    1 1 3 3 2 2 4
    
    예상 출력
    24