이진트리 그리기

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

문제

이진트리를 2차원 격자 위에 그리려고 한다. 각 정점은 격자점에 놓이고, 전체 그림의 루트는 사용한 격자의 맨 위쪽 행과 맨 왼쪽 열이 만나는 모서리에 놓인다.

그림은 다음 조건을 만족해야 한다.

  1. 각 정점의 자식은 부모의 오른쪽 같은 행에 놓이거나, 부모의 아래쪽 같은 열에 놓인다.
  2. 자식이 두 개라면 한 자식은 오른쪽 방향, 다른 자식은 아래쪽 방향에 놓인다. 자식이 하나라면 두 방향 중 하나를 선택할 수 있다.
  3. 어떤 정점의 두 자식이 각각 루트가 되는 두 서브트리를 감싸는 축에 평행한 직사각형은 서로 겹치면 안 된다.

그림의 면적은 그 그림을 모두 포함하는 격자의 가로 크기와 세로 크기를 곱한 값이다. 이진트리가 주어졌을 때, 위 조건을 만족하는 모든 그림 중 가능한 최소 면적을 구하시오.

입력

첫째 줄에 정점 수 n이 주어진다. (1 <= n <= 100)

둘째 줄에 n개의 정수가 공백으로 구분되어 주어진다. 전위 순회 결과가 1, 2, ..., n인 이진트리의 중위 순회 결과를 나타낸다. 입력은 항상 이 조건을 만족하는 올바른 이진트리이다.

출력

조건을 만족하는 그림의 최소 면적을 출력한다.