만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도장 두 번 찍기

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

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

보통10점 중 7점

유형
기하, 구현
정답자
아직 제출이 없습니다

문제

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

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

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

입력

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

다음 NN개 줄에는 첫 번째 자국의 꼭짓점 좌표 xx, yy (0≤x,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.0754…12.0754\ldots이면 12.08을 출력한다.

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

힌트

두 자국이 겹친 모습

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

예제2

  1. 예제 1

    입력
    3
    3 3
    1 0
    0 1
    -1 -1
    
    예상 출력
    12.08
    
  2. 예제 2

    입력
    4
    1 4
    4 4
    3 1
    2 1
    1 0
    
    예상 출력
    12.32