아직은 어색해

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

요약
자리 좌표와 첫 학생이 고른 자리가 주어질 때, 이후 각 학생이 이미 앉은 학생들과 가장 멀리 떨어진 자리를 고르는 과정을 시뮬레이션한다.
난이도

어려움10점 중 8점

유형
기하, 완전 탐색, 구현, 배열
정답자
아직 제출이 없습니다

문제

대전과학고등학교 식당에는 MM개의 자리가 있다. ii번째 자리의 좌표는 (x_i,y_i)(x\_i, y\_i)이며, 모든 자리의 좌표는 서로 다르다. NN명의 신입생이 식당에 들어와 순서대로 앉는데, 각 신입생은 다른 학생들에게서 멀리 떨어져 있는 것을 선호한다. 즉, 이미 앉아 있는 학생들 중 가장 가까운 학생과의 유클리드 거리가 최대가 되도록 하는 자리를 택하여 앉는다. 그런 자리가 여러 개라면, 번호가 가장 작은 자리를 택한다.

학생의 수 NN, 자리의 수 MM, 각 자리의 좌표 (x_i,y_i)(x\_i, y\_i), 그리고 첫 학생이 선택한 자리의 번호가 주어졌을 때, 각 학생이 앉는 자리의 번호 s_js\_j를 구해 보자.

입력

첫째 줄에 학생의 수 NN과 자리의 수 MM이 주어진다. (1≤N≤500;(1 \le N \le 500; 1≤M≤50,000;1 \le M \le 50\\,000; N≤M)N \le M)

다음 MM개의 줄에 걸쳐 ii번째 줄에는 ii번 자리의 좌표를 나타내는 두 정수 x_i,y_ix\_i, y\_i가 주어진다. (0≤x_i,y_i<109;(0 \le x\_i, y\_i < 10^9; 모든 i≠ji \ne j에 대해 (x_i,y_i)≠(x_j,y_j))(x\_i,y\_i)\ne(x\_j,y\_j))

다음 줄에는 첫 학생이 선택한 자리의 번호 s_1s\_1이 주어진다. (1≤s_1≤M)(1 \le s\_1 \le M)

출력

NN개의 줄에 걸쳐, jj번째 줄에는 jj번째 학생이 선택한 자리의 번호 s_js\_j를 출력한다. (1≤j≤N;(1\le j \le N; 1≤s_j≤M)1 \le s\_j \le M)

힌트

두 점 (a,b)(a,b)와 (c,d)(c,d)의 유클리드 거리는 (a−c)2+(b−d)2\sqrt{{(a-c)}^2+{(b-d)}^2}이다.

예제1

  1. 예제 1

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