컨퍼런스 카풀
면접 대비시간 제한1초메모리 제한2048 MB
차가 없는 참석자마다 운전자를 한 명씩 배정하여 모든 참석자가 집에 도착하는 시간의 최댓값을 최소화합니다.
문제
컨퍼런스에 참가자가 명 있으며, 번부터 번까지 번호가 붙어 있다. 처음 명(번부터 번까지)은 행사가 끝난 뒤 집에 갈 차가 있다. 나머지 명은 차가 없어서 처음 명의 도움을 받아 집에 간다. 차가 있는 참가자는 번부터 번까지 참가자 중 최대 한 명을 태워 집까지 데려다준 뒤, 자기 집으로 갈 수 있다.
참가자들의 집과 컨퍼런스 장소를 포함한 크기의 거리 행렬 가 주어진다. 인 위치 는 번 참가자의 집이고, 위치 은 컨퍼런스 장소다. 는 위치 에서 위치 까지 이동하는 예상 시간이다.
모든 참가자가 집에 도착할 때까지 걸리는 시간이 최소가 되도록 차가 있는 참가자와 차가 없는 참가자를 짝지어라.
입력
첫 줄에 정수 과 이 주어진다(, ). 이 보장된다.
이어서 개의 줄에 각각 개의 정수가 주어진다. 번째 줄의 번째 수가 다(). 모든 에 대해 이고, 모든 , , 에 대해 가 성립한다. 는 대칭이라고 보장되지 않는다.
출력
첫 줄에 모든 참가자가 집에 도착하는 데 걸리는 최소 시간을 출력한다.
이어서 인 각 줄에 음이 아닌 정수 를 출력한다. 이면 번 참가자는 아무도 태우지 않고 바로 집으로 간다. 이면 번 참가자는 번 참가자를 태워 집까지 데려다준 뒤 자기 집으로 간다. 차가 없는 참가자는 정확히 한 대의 차에 타야 한다.