만드는 중입니다

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

광물 매장지

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

요약
탐사선이 돌려주는 맨해튼 거리만으로 격자 범위 안에 숨은 광물 매장지 k개의 정확한 좌표를 찾고, 웨이브 횟수를 최소화합니다.
난이도

어려움10점 중 8점

유형
수학, 기하, 구현
정답자
아직 제출이 없습니다

문제

당신은 외계 채굴 회사에서 신호 처리를 맡고 있다. 당신의 우주선이 소행성에 접근하고 있다. 예비 스캔 결과 소행성에 kk개의 광물 매장지가 있는 것으로 나타났지만, 정확한 위치는 알려지지 않았다.

소행성 표면은 정수 좌표로 이루어진 격자로 볼 수 있다. ii번째 매장지는 정수 좌표 (xi,yi)(x_i, y_i)에 있으며, −b≤xi≤b-b \le x_i \le b, −b≤yi≤b-b \le y_i \le b를 만족한다. 여기서 bb는 초기 스캔의 크기에 해당하는 정수이다.

정확한 위치를 알아내기 위해 소행성 표면으로 탐사선을 보낼 수 있다. 탐사선은 여러 대씩 묶어 한꺼번에 보내며, 이를 웨이브라고 한다.

좌표 (sj,tj)(s_j, t_j)로 탐사선 dd대로 이루어진 웨이브를 보낸다고 하자(1≤j≤d1 \le j \le d). 탐사선은 도착하면 kk개의 매장지 각각까지의 맨해튼 거리를 측정해 우주선으로 돌려보낸다. 모든 데이터 패킷은 같은 시각에 도착하므로, 어느 탐사선이 어떤 거리를 돌려보냈는지는 구별할 수 없다. 따라서 한 웨이브에서 돌아오는 값은 다음과 같은 k⋅dk \cdot d개의 정수 거리이다.

∣xi−sj∣+∣yi−tj∣for all i∈{1,…,k} and j∈{1,…,d}.|x_i - s_j| + |y_i - t_j| \qquad \text{for all } i \in \{1, \ldots, k\} \text{ and } j \in \{1, \ldots, d\}.

소행성 표면으로 보내는 탐사 웨이브의 횟수를 최소화해야 한다.

제한

항상 1≤b≤1081 \leq b \leq 10^8, 1≤k≤201 \leq k \leq 20, 2≤w≤1042 \leq w \leq 10^4이다.

예제1

  1. 예제 1

    입력
    4 2 10
    
    2 4 4 4 6 10
    
    0 3 5 8
    
    
    예상 출력
    
    ? -4 -3 -1 0 2 -1
    
    ? 1 2 0 -2
    
    ! 1 2 -3 -2