땅따먹기

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

요약
N개의 직사각형을 묶음으로 나누어 각 묶음의 최대 너비와 최대 높이의 곱의 합을 최소로 만든다.
난이도

어려움10점 중 8점

유형
정렬, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

농부 상헌이는 선재의 부동산에서 땅 NN개를 모두 사려고 한다. 각 땅은 가로 WiW_i, 세로 HiH_i인 직사각형이다.

원래 땅 하나의 가격은 Wi×HiW_i \times H_i이지만, 요즘 장사가 잘 안 되는 선재는 다음과 같은 묶음 할인을 진행한다.

  • 여러 땅을 하나의 묶음으로 사면, 그 묶음의 가격은 (묶음에 속한 땅들의 WiW_i 중 최댓값) ×\times (묶음에 속한 땅들의 HiH_i 중 최댓값)이다.

상헌이는 NN개의 땅을 여러 묶음으로 나누어 모두 사려고 하며, 각 땅은 정확히 하나의 묶음에 속해야 한다. 땅을 어떻게 묶느냐에 따라 총 가격이 달라질 때, 모든 땅을 사기 위한 최소 비용을 구하여라.

입력

첫째 줄에 땅의 개수 NN이 주어진다. (1≤N≤500001 \le N \le 50000)

이어지는 NN개의 줄에 각 땅의 가로 WiW_i와 세로 HiH_i가 공백으로 구분되어 주어진다. (1≤Wi,Hi≤10000001 \le W_i, H_i \le 1000000)

출력

모든 땅을 사기 위한 최소 비용을 한 줄에 출력한다.

힌트

예를 들어 땅이 (100,1)(100, 1), (15,15)(15, 15), (20,5)(20, 5), (1,100)(1, 100) 네 개라면, {(100,1)}\{(100,1)\}, {(1,100)}\{(1,100)\}, {(15,15),(20,5)}\{(15,15),(20,5)\}의 세 묶음으로 나누어 살 수 있다. 이때 비용은 100×1+1×100+20×15=500100 \times 1 + 1 \times 100 + 20 \times 15 = 500이다.

예제5

  1. 예제 1

    입력
    4
    100 1
    15 15
    20 5
    1 100
    
    예상 출력
    500
    
  2. 예제 2

    입력
    1
    5 7
    
    예상 출력
    35
    
  3. 예제 3

    입력
    2
    3 3
    5 5
    
    예상 출력
    25
    
  4. 예제 4

    입력
    2
    1000000 1
    1 1000000
    
    예상 출력
    2000000
    
  5. 예제 5

    입력
    1
    1000000 1000000
    
    예상 출력
    1000000000000