페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5342

프리소비 (Cow Frisbee) 2초 256MB

문제

N마리(N ≤ 3 × 10^5)의 소들의 키는 1, 2, …, N이다.

 

어느 날, 소들이 프리소비(소들이 가지고 노는 프리스비라서 프리소비라고 부른다)를 가지고 놀며 어떤 순서로 줄을 서 있다. 

소들은 h_1, …​, h_N 높이로 줄을 서있다(따라서 h1 … N의 순열이다).

ij 위치에 있는 두 마리의 소는 그 사이의 모든 소의 높이가 min(h_i, h_j)보다 낮은 경우에만 프리소비​를 앞뒤로 성공적으로 던질 수 있다.

프리소비를 앞뒤로 성공적으로 던질 수 있는 한 쌍의 소가 있는 위치 i<j의 모든 쌍 사이의 거리의 합을 계산하시오. 

위치 ij 사이의 거리는 j−i+1이다.​​


입력

첫 번째 줄에 소의 수 N이 주어진다.

두 번째 줄에 소들의 키 h_1, …, h_N가 주어진다.​


출력

프리소비​를 앞뒤로 던질 수 있는 소가 있는 모든 위치 쌍의 거리의 합을 출력하시오.

이 문제와 관련된 큰 크기의 정수는 64비트 정수 데이터 유형(예: C/C++의 "long long")을 사용해야 할 수 있다.​


예제1

입력
7

4 3 1 2 5 6 7
출력
24


출처

USACO 2022 January Silver

역링크 공식 문제집만