문제 번호 1388. -- [고급알고리즘 1] KD-tree

1388: [고급알고리즘 1] KD-tree

시간 제한: 10 Sec  메모리 제한: 128 MB
제출: 112  해결 문제 수: 12
[제출][채점 상황 열람][게시판]

문제 설명

2차원 양의정수 데이터들이 입력될 때, 이를 kd-tree로 구성한다고 하자.

하나의 데이터는 각 입력라인에 x y 형태로 주어지고,  각 데이터들은 서로 다르다.

x차원, y차원 순서를 번갈아 가며 kd-tree가 구성되는데, 

그 과정에서 n+1개의 데이터 (d0, d1, d2..., dn)에 대해서 median은 d_floor(n/2)가 된다.

floor(k)는 k보다 작거나 같은 최대 정수이다. 예를 들어 floor(3) = 3, floor(2.5) = 2이다. 

-1 -1은 입력의 끝을 의미한다.

정렬하는 과정에서 x값이 같은 경우, y값의 오름차순으로 정렬한다.


구성된 kd-tree에서 root와 root->left, root->left->left->right의 값을 순서대로 출력하시오.

(없는 경우에는 0 0을 출력)


입력

1 1

2 2

3 3

-1 -1

출력

2 2

1 1

0 0

입력 예시

1 1
2 2
3 3
-1 -1

출력 예시

2 2
1 1
0 0

도움말

출처

[제출][채점 상황 열람]