John의 좋은 역순 쌍

시간 제한3초메모리 제한256 MB

요약
카드마다 적힌 빨간색과 파란색 두 값이 있을 때, 같은 색끼리의 역전 수 합이 최소가 되도록 카드를 배열한 뒤 그 값을 구합니다.
난이도

보통10점 중 6점

유형
정렬, 그리디, 분할 정복
정답자
아직 제출이 없습니다

문제

John은 최근 역순 쌍(inversion) 의 정의를 알게 되었다.

수열 s1,s2,…s_1, s_2, \dots 에서 역순 쌍이란 i<ji < j 이면서 si>sjs_i > s_j 를 만족하는 두 위치 (i,j)(i, j) 의 쌍을 말한다.

John은 역순 쌍이 수열이 얼마나 잘 정렬되어 있는지를 재는 좋은 척도라고 생각한다. 역순 쌍이 적을수록 더 잘 정렬된 것이며, 예를 들어 오름차순으로 정렬된 수열의 역순 쌍 개수는 0이다.

Peter가 John에게 카드 nn 장을 주었다. 각 카드에는 두 수가 적혀 있는데, 하나는 빨간색, 다른 하나는 파란색 으로 쓰여 있다. John은 카드들을 원하는 순서대로 한 줄로 늘어놓는다. 왼쪽에서 오른쪽으로 읽으면 빨간 수의 수열과 파란 수의 수열, 두 개의 수열이 만들어진다.

John은 두 수의 색이 같은 역순 쌍을 좋은 역순 쌍 이라고 부른다. 즉, 좋은 역순 쌍의 개수는 빨간 수열의 역순 쌍 개수와 파란 수열의 역순 쌍 개수를 더한 값이다. John은 좋은 역순 쌍의 총 개수가 가능한 한 작아지도록 카드를 배열하려고 한다.

가능한 좋은 역순 쌍의 최소 개수를 구하여라.

입력

첫째 줄에 카드의 개수 nn 이 주어진다 (1≤n≤100 0001 \le n \le 100\,000).

다음 nn 개의 줄에는 각각 두 정수 rir_i 와 bib_i 가 주어진다 (1≤ri,bi≤1091 \le r_i, b_i \le 10^9). 이는 각각 ii 번째 카드에 빨간색과 파란색으로 적힌 수이다.

출력

좋은 역순 쌍의 최소 개수를 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    3
    10 3
    20 2
    30 1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4
    2 2
    5 25
    2 1
    10 9
    
    예상 출력
    1