프레임

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

문제

바샤와 페탸가 재미있는 게임을 한다. 규칙은 간단하다. 두 개의 프레임이 주어지고, 두 번째 프레임을 평행이동시켜 두 프레임이 겹치는 영역의 넓이가 최대가 되도록 만들어야 한다. 두 사람은 각자 두 번째 프레임의 평행이동 벡터를 하나 적어내고, 더 큰 교집합 넓이를 만든 사람이 이긴다.

바샤는 최적의 평행이동 벡터를 찾아 주는 프로그램을 만들어서 이기고 싶어한다.

이 게임에서 프레임이란 두 직사각형의 차집합이다. 즉, 바깥 직사각형에서 그 안에 완전히 들어 있는 안쪽 직사각형을 뺀 영역이다. 안쪽 직사각형은 바깥 직사각형의 내부에 완전히(경계에 닿지 않게) 놓여 있으며, 두 직사각형의 변은 모두 좌표축에 평행하다.

정의를 더 분명히 하기 위해 몇 가지 예를 살펴보자.

잘못된 프레임올바른 프레임프레임의 교집합

프레임의 넓이는 $(W \cdot H - w \cdot h)$ 이다. 여기서 $W, H$ 는 바깥 직사각형의 가로·세로 길이이고, $w, h$ 는 안쪽 직사각형의 가로·세로 길이이다 ($0 < w < W$, $0 < h < H$).

두 번째 프레임을 적절히 평행이동시켰을 때 두 프레임의 교집합 넓이가 가질 수 있는 최댓값을 구하는 프로그램을 작성하라.

입력

각 프레임은 네 개의 점으로 주어진다. 먼저 바깥 직사각형의 마주 보는 두 꼭짓점이 주어지고, 이어서 안쪽 직사각형의 마주 보는 두 꼭짓점이 주어진다. 각 점은 정수 좌표 $x$, $y$ 의 쌍으로 표현된다. 모든 좌표의 절댓값은 $10^8$ 을 넘지 않는다.

첫째 줄에는 첫 번째 프레임의 정보가, 둘째 줄에는 두 번째 프레임의 정보가 주어진다.

출력

두 번째 프레임을 평행이동시켜 얻을 수 있는 두 프레임 교집합 넓이의 최댓값을 정수 하나로 출력한다.