아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

컴퍼스로 놀기

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

요약
간격이 고정된 컴퍼스로 찍은 최대 1000개의 격자점이 주어질 때, 모든 점이 정확히 그 거리만큼 떨어진 다른 점과 짝지어질 수 있는 간격을 모두 찾는다.
난이도

보통10점 중 6점

유형
기하, 해시맵, 수학, 정렬
정답자
아직 제출이 없습니다

문제

디마는 아빠 책상 위에서 컴퍼스처럼 생긴 특별한 제도 도구를 발견했다. 이 도구를 계측기라고 부르자. 계측기는 양쪽 다리 모두에 바늘이 달려 있다는 점에서 보통 컴퍼스와 다르다. 보통 컴퍼스는 한쪽 다리에 바늘이, 다른 쪽 다리에 심이 달려 있다.

디마는 모눈종이를 가져와 계측기의 두 바늘 사이에 어떤 거리를 두고 단단히 고정한 다음, 종이에 계측기를 찍기 시작했다. 디마는 매번 계측기의 두 바늘을 종이에 찍었고, 구멍이 종이를 칸으로 나누는 선들의 교점에 생기도록 항상 찍었다. 같은 구멍에 계측기를 여러 번 찍을 수도 있다.

저녁에 아빠는 디마가 가지고 놀던 종이를 발견하고, 디마가 계측기의 두 바늘 사이에 어떤 거리를 두었을 수 있는지 알아내려고 한다. 아빠가 아는 것은 계측기의 바늘로 뚫린 구멍들의 좌표뿐이다. 아빠를 도와 이 문제를 해결하자.

입력

첫째 줄에 구멍의 개수 nn이 주어진다 (2≤n≤10002 \le n \le 1000). 다음 nn개 줄에 구멍의 좌표를 나타내는 두 정수가 주어진다. 좌표의 절댓값은 10410^4을 넘지 않는다.

출력

첫째 줄에 디마가 계측기의 두 바늘 사이에 둘 수 있었던 서로 다른 거리의 개수 kk를 출력한다. 다음 kk개 줄에 각각 하나의 실수를 출력한다. 이 실수들이 바로 구하려는 거리들이다. 거리는 오름차순으로 출력해야 한다. 각 수는 10−910^{-9} 이상의 정밀도로 출력해야 한다.

디마가 계측기의 두 바늘 사이에 둘 수 있었던 거리가 적어도 하나 존재한다고 보장된다.

예제1

  1. 예제 1

    입력
    4
    0 0
    1 1
    1 0
    0 1
    
    예상 출력
    2
    1.0
    1.414213562373