만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

색 섞기

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

요약
각 요청 색상과 맨해튼 거리가 가장 가까운 기계 색상의 번호를 출력하며, 거리가 같으면 번호가 작은 쪽을 고릅니다.
난이도

보통10점 중 6점

유형
트리, 분할 정복
정답자
아직 제출이 없습니다

문제

건축 자재 가게에는 빨강, 초록, 파랑(이하 기본색)을 섞어 여러 색조를 만드는 기계가 있다. 기계가 섞을 수 있는 색조마다 RGB 코드가 주어지며, 이 코드는 각 기본색을 얼마나 쓰는지를 나타낸다. 코드는 16비트 정수 3개로 이루어진다. 손님은 특정 색조를 주문하며, 이 색조도 RGB 코드로 주어진다. 기계가 주문한 색조를 정확히 만들지 못할 수 있으므로, 기계는 만들 수 있는 색조 중 가장 가까운 것을 고른다. "가까움"은 RGB 색 공간에서의 3D 맨해튼 거리로 잰다. 예를 들어 색조 "100 50 0"과 "20 25 10" 사이의 거리는 각 기본색 차이의 합 ∣100−20∣+∣50−25∣+∣0−10∣=115|100-20|+|50-25|+|0-10|=115이다. 어떤 날에는 기계의 기본색(빨강, 초록, 파랑) 중 하나가 다 떨어져 있다. 이때 손님은 그 기본색이 필요 없는 색조만 주문한다. 기계의 색조는 색 공간에 고르게 퍼지도록 만들어졌으므로, 가능한 색조는 대체로 무작위이며 각 색조가 나올 확률이 같다고 가정할 수 있다. 기계가 만들 수 있는 색조들은 서로 모두 다르지만, 손님들의 주문은 겹칠 수 있다.

입력

첫 줄에 기계가 만들 수 있는 색조의 개수 1≤N≤100 0001 \le N \le 100\,000과 주문의 개수 1≤Q≤100 0001 \le Q \le 100\,000이 주어진다. 다음 N+QN + Q줄에는 각각 0부터 65535까지의 정수 3개가 주어지며, 이는 한 색의 RGB 코드이다. 처음 NN줄은 기계가 섞을 수 있는 색조의 코드이고, 마지막 QQ줄은 손님이 원하는 색의 RGB 코드이다.

출력

QQ줄에 정수를 한 개씩 출력한다. 각 손님의 주문마다, 주문한 색에 가장 가까운 기계 색조의 번호를 출력한다. 기계의 색조는 입력에 나온 순서대로 00부터 N−1N-1까지 번호가 매겨져 있다. 같은 거리에 있는 색조가 둘 이상이면 번호가 작은 색조를 출력한다.

예제3

  1. 예제 1

    입력
    3 3
    200 0 0
    8 0 0
    100 0 0
    8 0 0
    300 0 0
    150 0 0
    
    예상 출력
    1
    0
    0
    
  2. 예제 2

    입력
    3 3
    75 25 0
    100 100 0
    150 50 0
    100 50 0
    50 100 0
    200 30 0
    
    예상 출력
    0
    1
    2
    
  3. 예제 3

    입력
    4 3
    5 5 5
    200 200 200
    150 10 10
    0 0 255
    0 0 0
    10 10 200
    175 105 105
    
    예상 출력
    0
    3
    1