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

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

폐소공포증에 걸린 소들

면접 대비

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

요약
최대 2000개의 점이 주어질 때, 유클리드 거리가 가장 짧은 유일한 두 점을 찾아 번호를 오름차순으로 출력한다.
난이도

보통10점 중 6점

유형
기하, 분할 정복, 정렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

농부 John의 소 NN마리는 각각 11번부터 NN번까지 번호가 매겨져 있으며, 다른 소와 너무 가까이 있는 것을 몹시 싫어합니다.

각 소 ii의 위치는 정수 좌표 (Xi,Yi)(X_i, Y_i)로 주어집니다. 두 소 사이의 거리는 유클리드 거리, 즉 (Xi−Xj)2+(Yi−Yj)2\sqrt{(X_i - X_j)^2 + (Y_i - Y_j)^2}로 정의합니다.

모든 소 쌍 중에서 서로 가장 가까운 쌍은 정확히 하나뿐입니다. 이 가장 가까운 두 소를 찾아, 두 소의 번호를 오름차순으로 출력하세요.

제약 조건

  • 2≤N≤20002 \le N \le 2000
  • 1≤Xi≤1000001 \le X_i \le 100000
  • 1≤Yi≤1000001 \le Y_i \le 100000

입력

  • 첫째 줄: 정수 NN
  • 둘째 줄부터 N+1N+1번째 줄까지: ii번째 줄에는 소 ii의 좌표를 나타내는 두 정수 XiX_i와 YiY_i가 공백으로 구분되어 주어집니다.

출력

  • 첫째 줄: 서로 가장 가까운 두 소의 번호를 오름차순으로, 공백으로 구분하여 출력합니다.

예제1

  1. 예제 1

    입력
    9
    2 9
    5 9
    8 10
    11 7
    10 3
    5 1
    6 4
    2 5
    7 6
    
    예상 출력
    7 9