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

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

Space Ant

면접 대비

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

요약
모든 x좌표와 y좌표가 서로 다른 N개의 점이 주어질 때, 현재 점에서 가장 시계 방향에 있는 남은 점을 반복해서 고른 방문 순서를 출력한다.
난이도

보통10점 중 5점

유형
기하, 정렬, 시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

20세기 말의 가장 흥미로운 우주 발견은 1999년에 이루어졌다. 과학자들은 행성 Y1999에서 개미를 닮은 생명체를 발견하고 M11이라고 이름 붙였다. M11은 머리 왼쪽에 눈이 하나만 있고, 몸 오른쪽에만 다리가 세 개 있다. 이 특이한 신체 구조 때문에 걸을 때 다음 세 가지 제약을 받는다.

  1. 절대 오른쪽으로 돌 수 없다.
  2. 지나간 자리마다 바닥을 빨갛게 칠한다.
  3. 이미 빨간 바닥은 다시 밟지 않으므로, 이동 경로는 자기 자신과 결코 교차하지 않는다.

디스커버리 우주선이 보낸 사진을 보면 Y1999의 식물은 특정한 점에서만 자란다. 수천 장의 사진을 분석한 결과, 이 식물들의 생장 지점을 지배하는 신비한 좌표계가 밝혀졌다. xx축과 yy축으로 이루어진 이 평면에서 어떤 두 식물도 같은 xx좌표나 같은 yy좌표를 갖지 않는다.

M11은 살아남기 위해 하루에 정확히 식물 하나를 먹어야 한다. 식물을 먹고 나면 그날 하루는 그 자리에 머무르고, 다음 날 다른 식물로 이동해 그것을 먹는다. 거리에 상관없이 어떤 식물에든 도달할 수 있다. 새로운 식물에 도달할 수 없으면 그날이 끝날 때 죽는다.

yy좌표가 가장 작은 식물을 AA라 하자. M11은 점 (0,yA)(0, y_A)에서 출발해 AA를 향해 걷기 시작한다. 그 뒤로는 반시계 방향(왼쪽)으로만 돌 수 있고, 지나온 자취는 결코 교차하지 않는다. 이 규칙 아래에서 M11은 항상 모든 식물을 먹을 수 있다. 당신의 임무는 M11이 식물을 먹는 순서를 출력하는 것이다.

방문 순서는 다음 규칙으로 유일하게 결정된다.

  • yy좌표가 가장 작은 식물 AA에서 출발한다.
  • 매 단계마다 현재 식물에서, 남은 모든 식물이 '현재 식물 → 다음 식물' 방향 반직선의 왼쪽에 놓이도록 하는 식물 PP를 다음 방문지로 고른다. 즉, 남은 식물 중 가장 시계 방향에 있는 식물을 고른다.
  • 그 반직선 위에 남은 식물이 여러 개(한 직선 위에) 있으면 가장 가까운 식물부터 방문한다.

입력

첫째 줄에 테스트 케이스의 수 MM이 주어진다 (1≤M≤101 \le M \le 10). 각 테스트 케이스의 첫 줄에는 식물의 수 NN이 주어진다 (1≤N≤501 \le N \le 50). 이어지는 NN개의 줄에는 각 식물의 정보가 정수 세 개로 주어지며, 순서대로 식물의 고유 번호(11부터 NN까지), xx좌표, yy좌표이다. 식물은 번호가 커지는 순서로 주어진다. 모든 좌표는 100100 이하의 양의 정수이며, 한 테스트 케이스 안에서 어떤 두 식물도 같은 xx좌표나 같은 yy좌표를 갖지 않는다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 먼저 M11의 경로에 있는 식물의 수(항상 NN이다)를 출력하고, 이어서 M11이 방문하는 순서대로 식물의 번호를 출력한다. 모든 값은 공백 하나로 구분한다.

예제1

  1. 예제 1

    입력
    2
    10
    1 4 5
    2 9 8
    3 5 9
    4 1 7
    5 3 2
    6 6 3
    7 10 10
    8 8 1
    9 2 4
    10 7 6
    14
    1 6 11
    2 11 9
    3 8 7
    4 12 8
    5 9 20
    6 3 2
    7 1 6
    8 2 13
    9 15 1
    10 14 17
    11 13 19
    12 5 18
    13 7 3
    14 10 16
    
    예상 출력
    10 8 7 3 4 9 5 6 2 1 10
    14 9 10 11 5 12 8 7 6 13 4 14 1 3 2