외교 특권

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

요약
홀수 개의 점이 원형 순서로 주어질 때, 인접한 두 점을 잇는 선분의 중점을 순서대로 구해 소수점 여섯 자리까지 출력한다.
난이도

보통10점 중 4점

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

문제

외교 비용을 최소화하기 위해 세계 각국은 다음과 같이 논의하였다. 각 나라가 최대 한 나라와만 외교 관계를 맺는 것으로는 충분하지 않다. 세계에는 나라가 둘보다 많으므로, 그럴 경우 어떤 두 나라는 외교관들의 연쇄를 통해서도 서로 연락할 수 없기 때문이다.

그래서 각 나라가 최대 두 나라와 외교 관계를 맺는다고 하자. 모든 나라를 동등하게 대우해야 한다는 것이 외교상 불문율이므로, 결국 각 나라는 정확히 두 나라와 외교 관계를 맺는다.

이 조건을 만족하는 구조로 다음이 제안되었다. 모든 나라를 원형으로 배치하고, 각 나라가 자신의 왼쪽 이웃 및 오른쪽 이웃과 외교 관계를 맺도록 한다. 각 나라의 외교부는 그 나라의 수도에 있으며, 편의상 2차원 평면 위의 한 점으로 주어진다고 하자. 외교 관계를 맺은 두 나라의 외교부를 선분으로 이으면 하나의 다각형이 만들어진다.

이제 양자 외교 회담을 열 장소를 정해야 한다. 외교상의 이유로 두 나라의 외교관이 회담 장소까지 이동하는 거리는 서로 같아야 하며, 효율을 위해 그 거리는 가능한 한 작아야 한다. 모든 회담 장소를 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 관련된 나라의 수 nn으로 시작한다. n≥3n \ge 3이며 홀수임이 보장된다. 이어서 각 나라 외교부의 위치를 나타내는 xx좌표와 yy좌표의 쌍이 nn개 주어진다. 모든 좌표는 절댓값이 101210^{12}보다 작은 정수이다. 나라들은 원을 따라 놓인 순서대로 주어지며, 추가로 첫 번째 나라는 목록의 마지막 나라와 이웃이다. 입력은 파일의 끝(EOF)에서 종료된다.

출력

각 테스트 케이스에 대해, 회담 장소의 개수(이는 nn과 같다)를 출력한 뒤 각 장소의 xx좌표와 yy좌표를 출력한다. 회담 장소는 입력과 같은 순서로, 즉 첫 번째와 두 번째 나라의 회담 장소부터 시작하여 연속된 나라 쌍의 순서대로 출력하고, 마지막으로 nn번째 나라와 첫 번째 나라의 회담 장소를 출력한다. 모든 좌표는 소수점 아래 여섯 자리까지 출력한다.

힌트

회담 장소들을 입력 순서대로 나열하면 그 자체로 하나의 다각형으로 볼 수 있다. 나라들로부터 회담 장소를 구하는 것과, 회담 장소들로부터 원래의 나라들을 복원하는 것은 서로 역의 문제이다.

예제5

  1. 예제 1

    입력
    5 10 2 18 2 22 6 14 18 10 18
    3 -4 6 -2 4 -2 6
    3 -8 12 4 8 6 12
    
    예상 출력
    5 14.000000 2.000000 20.000000 4.000000 18.000000 12.000000 12.000000 18.000000 10.000000 10.000000
    3 -3.000000 5.000000 -2.000000 5.000000 -3.000000 6.000000
    3 -2.000000 10.000000 5.000000 10.000000 -1.000000 12.000000
    
  2. 예제 2

    입력
    3 0 0 4 0 2 6
    
    예상 출력
    3 2.000000 0.000000 3.000000 3.000000 1.000000 3.000000
    
  3. 예제 3

    입력
    5 0 0 2 1 4 5 -1 7 -3 2
    
    예상 출력
    5 1.000000 0.500000 3.000000 3.000000 1.500000 6.000000 -2.000000 4.500000 -1.500000 1.000000
    
  4. 예제 4

    입력
    7 1 1 3 2 5 1 6 4 4 6 2 5 0 3
    
    예상 출력
    7 2.000000 1.500000 4.000000 1.500000 5.500000 2.500000 5.000000 5.000000 3.000000 5.500000 1.000000 4.000000 0.500000 2.000000
    
  5. 예제 5

    입력
    9 0 0 2 0 4 0 6 2 6 4 4 6 2 6 0 4 0 2
    
    예상 출력
    9 1.000000 0.000000 3.000000 0.000000 5.000000 1.000000 6.000000 3.000000 5.000000 5.000000 3.000000 6.000000 1.000000 5.000000 0.000000 3.000000 0.000000 1.000000