頁面無法載入?點擊這裡可能會修復。
Placeholder

#8436
子任務

딱 맞는 조각 2s 512MB

問題

N 열로 구성된 조각이 아래 그림과 같이 주어진다.

위 예시 그림에서는 N = 6 이고, 각 열의 높이는 [ 2, 4, 3, 2, 1, 3 ] 이다.

정올이는 "하나의 연결된 조각" 을 이 위에 붙여서 직사각형을 만드려고 한다.

예를 들어, 아래와 같이 할 수 있다.

이 때 정올이가 사용한 녹색 조각의 크기는 27 이다. ( 조각의 크기는, 그 조각에 포함된 단위 칸들의 개수다. )

아래는 불가능한 경우다.

위 그림이 불가능한 이유는, 녹색 조각이 하나로 연결되어 있지 않기 때문이다.

즉, 조건을 만족하며 직사각형을 만드는 가장 작은 조각은 아래 그림과 같다.

이 조각의 크기는 15 이고, 이 값이 최소다.

직사각형을 만드는 가장 작은 조각의 크기를 찾는 프로그램을 작성하자.


輸入

첫 줄에 N 이 입력된다. ( 3 ≤ N ≤ 100,000 )

두 번째 줄에 각 열의 높이가 차례대로 입력된다. ( 1 이상 109 이하의 정수 )

모든 열의 높이가 같은 입력은 주어지지 않는다. ( 입력 도형은 직사각형이 될 수 없다. )


輸出

조건을 만족하는 가장 작은 조각의 크기를 출력한다.


子任務

編號 分數 條件
#120分

N = 3

#220分

입력된 N개의 정수들이 모두 다르다.

#320分

1 ≤ N ≤ 1,000

#440分

제약 조건 없음


範例 #1

6
2 4 3 2 1 3
15

範例 #2

5
2 2 1 1 2
2

3번째, 4번째 열에 각각 1 칸을 채워 넣으면 된다.

( 하나의 연결된 조각이 되기에 조건을 만족한다. )


範例 #3

5
2 1 2 1 2
7

하나의 조각으로 높이 2 짜리 직사각형을 만들 순 없다. ( 두 번째 열과 네 번째 열은 서로 떨어져 있기 때문 )

따라서 높이 3 짜리 직사각형을 만들어야 하고, 이 때의 답은 7 이다.



來源

againalgo
需要登入才能撰寫程式碼。