도장 두 번 찍기

볼록 다각형과 그 다각형을 벡터만큼 평행이동한 도형이 주어질 때, 두 도형의 합집합 전체 둘레를 구한다.

보통7기하구현아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

대회 본부가 예선 순위표를 게시하자 한 참가자가 다가와 물었다. "도장은 어디 있나요?"

같은 질문을 다시 듣지 않으려고, 이번에는 순위표에 도장을 한 번이 아니라 두 번 찍는다. 도장은 볼록 다각형 모양이고, 두 자국은 서로 겹칠 수도 있고 떨어져 있을 수도 있다. 잉크가 묻은 부분 전체의 둘레 길이를 구하라.

두 번째 자국은 첫 번째 자국을 벡터 (Dx,Dy)(D_x, D_y)만큼 평행이동한 위치에 찍은 것이다.

입력

첫째 줄에 도장의 꼭짓점 개수 NN (3N1000003 \le N \le 100\,000)이 주어진다.

다음 NN개 줄에는 첫 번째 자국의 꼭짓점 좌표 xx, yy (0x,y<1090 \le x, y < 10^9)가 한 줄에 하나씩 시계 방향으로 주어진다. 세 꼭짓점이 한 직선 위에 놓이는 경우는 없다.

마지막 줄에는 두 번째 자국의 평행이동 벡터를 이루는 정수 DxD_x, DyD_y (109<Dx,Dy<109-10^9 < D_x, D_y < 10^9)가 주어진다.

출력

잉크가 묻은 부분의 둘레 길이를 소수점 아래 두 자리까지 반올림해 한 줄에 출력한다. 값이 정수로 떨어져도 34.00처럼 두 자리를 모두 적는다. 예를 들어 정확한 값이 12.075412.0754\ldots이면 12.08을 출력한다.

모든 입력에서 정확한 답과 반올림 경계 사이의 거리는 0.0010.001보다 크다. 배정밀도 실수 연산으로 계산해도 반올림 결과는 달라지지 않는다.

힌트

두 자국이 겹친 모습

그림은 첫 번째 예제이다. 빨간 삼각형이 첫 번째 자국, 파란 삼각형이 (1,1)(-1, -1)만큼 평행이동한 두 번째 자국이다.