아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Dominating Duos

면접 대비

시간 제한4초메모리 제한512 MB

요약
순열에서 두 끝값이 그 사이의 모든 값보다 큰 쌍 (i, j)의 개수를 n이 10^6까지일 때 센다.
난이도

보통10점 중 6점

유형
스택, 배열, 조합론
정답자
아직 제출이 없습니다

문제

사람들이 한 줄로 서 있다. 각 사람의 키는 서로 다르다. 줄에서 어떤 두 사람 사이에 있는 모든 사람보다 두 사람이 더 큰 경우, 그러한 두 사람의 순서 없는 쌍의 개수를 세려고 한다.

더 형식적으로, 줄에 서 있는 순서대로 사람들의 키를 나열한 수열을 dd라고 하자. i<ji < j이고 i<k<ji < k < j인 모든 kk에 대해 di>dkd_i > d_k이며 dj>dkd_j > d_k인 인덱스 쌍 i,ji, j의 개수를 구하려고 한다. j=i+1j = i + 1인 경우(즉, ii와 jj 사이에 kk가 없는 경우)에는 이 조건이 자명하게 성립한다.

입력

첫째 줄에 사람 수를 나타내는 정수 nn이 주어진다(2≤n≤1062 \le n \le 10^6).

다음 nn개 줄에 각각 하나의 정수 did_i가 주어진다(1≤di≤n1 \le d_i \le n). 이 값들은 줄에 서 있는 순서대로 사람들의 키이며, 수열은 11부터 nn까지의 정수를 한 번씩 포함하는 순열임이 보장된다.

출력

두 사람 사이에 있는 모든 사람보다 두 사람이 더 큰 경우의 쌍의 개수를 정수 하나로 출력한다.

예제2

  1. 예제 1

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

    입력
    6
    1
    3
    2
    6
    4
    5
    
    예상 출력
    7