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

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

삼각형으로 영토 나누기

면접 대비

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

요약
말뚝을 x좌표 순, 동점이면 y좌표 순으로 정렬한 뒤 앞에서부터 세 개씩 묶어 각 묶음의 입력 번호를 오름차순으로 출력합니다.
난이도

쉬움10점 중 2점

유형
정렬
정답자
아직 제출이 없습니다

문제

넓은 영토가 xyxy 평면 위에 있고, 그 위에 말뚝이 정확히 3N3N개 박혀 있다. 말뚝의 위치는 모두 다르고, 어느 세 말뚝도 한 직선 위에 있지 않다.

NN명이 이 영토를 나눈다. 각자 말뚝을 3개씩 고르고, 고른 말뚝을 선분으로 이어 만든 삼각형의 안쪽을 자기 영토로 가진다. 모든 말뚝은 정확히 한 사람에게 배정된다. 서로 다른 두 사람의 삼각형은 경계선이나 꼭짓점에서도 만나면 안 된다.

이런 분할은 어떤 입력에서도 존재한다. 다만 분할이 여러 개일 수 있으므로, 다음 규칙으로 정해지는 분할 하나만 출력한다.

  1. 말뚝을 xx좌표가 작은 순으로 정렬한다. xx좌표가 같으면 yy좌표가 작은 순으로 정렬한다. 말뚝의 위치가 모두 다르므로 이 순서는 하나로 정해진다.
  2. 정렬한 순서대로 앞에서부터 3개씩 끊는다. 앞의 3개가 첫 번째 사람, 그다음 3개가 두 번째 사람, 이런 식으로 NN번째 사람까지 배정한다.

이 규칙으로 나눈 삼각형은 서로 만나지 않는다.

입력

첫째 줄에 사람의 수 NN (1≤N≤3001 \le N \le 300)이 주어진다.

다음 3N3N개의 줄에 말뚝의 좌표 xx와 yy (−106≤x,y≤106-10^6 \le x, y \le 10^6)가 공백으로 구분되어 주어진다. 두 값은 모두 정수다. 말뚝에는 입력 순서대로 1번부터 3N3N번까지 번호가 붙는다. 말뚝의 위치는 모두 다르고, 어느 세 말뚝도 한 직선 위에 있지 않다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 위 규칙으로 ii번째 사람에게 배정된 말뚝 세 개의 번호를 번호가 커지는 순으로 공백으로 구분해 출력한다.

예제8

  1. 예제 1

    입력
    2
    1 0
    2 0
    3 1
    2 2
    1 2
    0 1
    
    예상 출력
    1 5 6
    2 3 4
    
  2. 예제 2

    입력
    1
    0 0
    5 1
    2 7
    
    예상 출력
    1 2 3
    
  3. 예제 3

    입력
    1
    -1000000 -1000000
    1000000 -1000000
    0 1000000
    
    예상 출력
    1 2 3
    
  4. 예제 4

    입력
    4
    0 0
    0 10
    1 -5
    1 20
    2 3
    2 100
    3 -50
    3 4
    4 1
    4 999
    5 -7
    5 8
    
    예상 출력
    1 2 3
    4 5 6
    7 8 9
    10 11 12
    
  5. 예제 5

    입력
    3
    1000000 0
    766044 642788
    173648 984808
    -500000 866025
    -939693 342020
    -939693 -342020
    -500000 -866025
    173648 -984808
    766044 -642788
    
    예상 출력
    5 6 7
    3 4 8
    1 2 9
    
  6. 예제 6

    입력
    4
    -4 16
    -3 9
    -2 4
    -1 1
    0 0
    1 1
    2 4
    3 9
    4 16
    5 25
    6 36
    7 49
    
    예상 출력
    1 2 3
    4 5 6
    7 8 9
    10 11 12
    
  7. 예제 7

    입력
    5
    -669 -30
    -846 -596
    -334 -951
    -926 -160
    -452 -904
    -626 -404
    -941 -69
    -481 -781
    -962 -912
    -556 -572
    -929 -754
    -908 -436
    -566 -940
    -154 -421
    -874 -30
    
    예상 출력
    7 9 11
    4 12 15
    1 2 6
    8 10 13
    3 5 14
    
  8. 예제 8

    입력
    2
    1000000 1000000
    -1000000 0
    999999 -1000000
    -999999 5
    1000000 -999999
    -999998 -3
    
    예상 출력
    2 4 6
    1 3 5