페어랜드 (라지)
시간 제한10초메모리 제한512 MB
CEO를 포함하고 급여 범위가 D 이하가 되는 가장 큰 루트 연결 부분 트리를 구합니다.
문제
페어랜드는 회사의 조직과 급여를 다음 법으로 규정한다.
- 회사마다 대표는 정확히 한 명이고, 대표에게는 상사가 없다.
- 대표를 제외한 모든 직원에게는 상사가 정확히 한 명 있다. 즉 회사의 조직도는 사이클이 없는 트리다.
- 직원이 회사에 남아 있는 동안 그 직원의 상사는 바뀌지 않는다. 어떤 상사가 회사를 떠나면 그 상사에게 보고하던 직원도 모두 떠나야 한다.
- 대표는 회사를 떠나지 않는다.
- 모든 직원은 연봉을 받는다. 직원의 연봉은 바뀌지 않는다.
- 직원마다 연봉이 다를 수 있고, 연봉은 조직도에서의 위치와 아무 관계가 없다.
여기에 법이 하나 더 생겼다.
- 회사 전체에서 가장 높은 연봉과 가장 낮은 연봉의 차이는 이하여야 한다.
마리는 페어랜드 제너럴 스터프 사의 대표이고, 회사가 새 법을 지키도록 만들어야 한다. 그러려면 직원 일부를 내보내야 할 수도 있다. 마리는 직원 명단과 각 직원의 상사, 각 직원의 연봉을 알고 있다. 마리 자신을 포함해 남길 수 있는 직원 수의 최댓값을 구하라.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 직원 수 과 허용되는 연봉 차이의 최댓값 가 공백으로 구분되어 주어진다. 둘째 줄에는 정수 네 개 , , , 가, 셋째 줄에는 정수 네 개 , , , 이 공백으로 구분되어 주어진다. 이 여덟 개의 정수는 다음 두 수열을 정의한다.
마리의 직원 번호는 0이고 나머지 직원의 번호는 1부터 까지다. 직원 의 연봉은 다. 마리를 제외한 직원 의 상사는 다. 따라서 은 마리의 상사와 무관하다. 마리에게는 상사가 없다.
제한
- 이고, 모든 테스트 케이스의 을 합한 값은 이하다
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 법 1번부터 7번까지를 모두 지키면서 마리가 자기 자신을 포함해 남길 수 있는 직원 수의 최댓값이다.
설명
첫 번째 예제 입력의 첫 테스트 케이스에는 대표뿐이고 다른 직원이 없다. 어떤 법도 어기지 않으므로 아무도 내보내지 않는다.
두 번째 테스트 케이스에서 직원 1번부터 5번까지의 수열은 다음과 같다.
- : 13, 16, 2, 5, 8
- : 17, 3, 13, 14, 16
- 상사 번호: , , , ,
그래서 조직도는 다음과 같다. 마리(0번)의 부하는 1번, 1번의 부하는 2번과 3번과 5번, 2번의 부하는 4번이다. 0번부터 5번까지의 연봉은 각각 10, 13, 16, 2, 5, 8이고 다.
최적의 선택은 0번, 1번, 5번을 남기는 것이다. 세 사람의 연봉은 각각 10, 13, 8이다. 예를 들어 2번은 남길 수 없다. 2번의 연봉은 0번의 연봉 10에서 5를 넘게 떨어져 있는데 0번은 내보낼 수 없으므로, 2번과 2번에게 보고하는 직원은 모두 내보내야 한다.