가장 작은 값을 최대로 만들기
시간 제한4초메모리 제한2048 MB
두 배열의 원소마다 삭제 비용이 주어졌을 때, 총 비용을 s 이하로 써서 남은 a의 원소와 b의 원소 사이 차이의 최솟값을 가장 크게 만드는 값을 구합니다.
문제
길이 의 배열 와 길이 의 배열 가 있다. 배열에서 일부 원소를 제거할 수 있다. 원소 를 제거하는 데 코인이 들고, 원소 를 제거하는 데 코인이 든다. 단, 에는 원소가 적어도 하나 남아 있어야 하고, 에도 원소가 적어도 하나 남아 있어야 한다.
원소 제거를 마치면 다음 값을 계산한다.
이 값을 최대로 만들고 싶다. 전체적으로 최대 코인까지 쓸 수 있을 때, 얻을 수 있는 값의 최댓값은 얼마인가?
입력
첫 줄에 테스트 케이스의 수 ()가 주어진다. 이후 테스트 케이스가 이어진다.
각 테스트 케이스의 첫 줄에는 정수 (), (), ()가 주어진다. 다음 네 줄에는 차례대로 정수 배열 , , , 가 주어진다 (; ). 배열 와 의 길이는 이고, 배열 와 의 길이는 이다.
모든 테스트 케이스에 대해 의 합은 를 넘지 않는다. 의 합도 를 넘지 않는다.
출력
각 테스트 케이스마다, 전체적으로 최대 코인을 사용해 얻을 수 있는 값의 최댓값을 출력한다.