올림픽 준비 학교
시간 제한1초메모리 제한512 MB
세 출생 연도별로 뽑을 인원을 정해 각 연도의 최저 점수가 다음 연도보다 높고 자기 연도 최저 점수보다 높은 지원자는 모두 뽑히도록 하면서 목표 A, B, C와의 차이 합을 최소화한다.
문제
2018년 월드컵을 준비하기 위해 올림픽 준비 학교를 세운다. 이 학교에는 1994년부터 1996년 사이에 태어난 남학생 M명을 입학시켜야 한다. 각 지원자 N명에게는 실력을 나타내는 점수가 매겨졌고, 모든 지원자의 점수는 서로 다르다. 학교에는 1994년생 A명, 1995년생 B명, 1996년생 C명을 받고 싶다 (A + B + C = M). 이때 입학한 1994년생의 최저 점수는 입학한 1995년생의 최저 점수보다 커야 하고, 입학한 1995년생의 최저 점수는 입학한 1996년생의 최저 점수보다 커야 한다. 자기 출생 연도의 최저 점수보다 높은 점수를 받은 지원자는 모두 입학시켜야 한다.
데이터베이스에는 각 지원자의 출생 연도와 점수가 저장되어 있다. 각 출생 연도별로 몇 명씩 입학시켜야 하는지 M94, M95, M96을 정하려고 한다 (M94 + M95 + M96 = M). 이때 F = |M94 − A| + |M95 − B| + |M96 − C| 값이 최소가 되어야 하고, 입학생의 최저 점수에 관한 모든 규칙이 지켜져야 하며, 요구되는 각 출생 연도마다 남학생이 적어도 한 명은 입학해야 한다.
입력
첫째 줄에 테스트 케이스의 수 K가 주어진다. 그다음에 각 테스트 케이스의 설명이 이어진다. 각 테스트 케이스의 처음에는 자연수 A, B, C가 있다. 설명의 둘째 줄에는 지원자의 수 N이 있다 (N ≥ A + B + C가 보장된다). 다음 N개 줄에는 각 지원자의 출생 연도 (1994, 1995, 1996 중 하나)와 점수가 주어진다.
출력
각 테스트 케이스의 답을 한 줄에 출력한다. 요구 사항 중 하나라도 만족시킬 수 없으면 −1만 출력한다. 그렇지 않으면 그 줄에 F의 최솟값을 먼저 출력하고, 그다음에 이 최솟값을 달성하며 선발 규칙을 모두 만족하는 M94, M95, M96을 출력한다. 답이 여러 개면 아무거나 출력해도 된다.
제한
모든 테스트 케이스의 N 값의 합은 300 000을 넘지 않고, 각 지원자의 점수는 1부터 109까지의 범위에 있다.
힌트
첫 번째 예제의 첫 번째 테스트 케이스에서는 1995년생 남학생을 한 명도 초대할 수 없으므로 답이 존재하지 않는다. 두 번째 테스트 케이스에서는 답이 존재하고 유일하며, 세 번째 테스트 케이스에서는 최저 점수에 관한 규칙을 만족시킬 수 없다.
두 번째 예제에서는 2 2 2 2도 정답이다.