고객 서비스 계획
시간 제한1초메모리 제한128 MB
거리와 수요를 곱한 비용이 예산을 넘지 않는 선에서 우선순위 합이 가장 커지도록 고객을 고릅니다.
문제
가중 그래프 의 정점 몇 곳에 시설 하나와 여러 고객이 있다. 고객 마다 음이 아닌 수요 와 그 고객의 중요도를 나타내는 음이 아닌 우선순위 가 주어진다.
고객 의 서비스 비용은 이다. 여기서 는 그래프 에서 시설이 있는 정점부터 고객 가 있는 정점까지의 최단 거리다. 예를 들어 아래 그림에서 고객 의 서비스 비용은 이고, 는 고객 의 수요다. 같은 그림에서 고객 는 시설까지 가는 경로가 없으므로 서비스 비용이 무한대다.
고객 집합의 부분집합 중에서, 그 부분집합에 속한 고객의 서비스 비용 합이 음이 아닌 예산 를 넘지 않으면서 우선순위 합이 가장 큰 경우를 찾는 프로그램을 작성하시오.

입력
입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 개수 가 주어진다. ()
각 테스트 케이스의 첫째 줄에는 그래프의 정점 개수 이 주어진다. () 정점 번호는 부터 까지이며, 번 정점에 시설이 있다.
다음 줄에는 고객의 수 이 주어진다. () 이어지는 개 줄에는 고객 한 명의 정보가 정수 세 개로 주어진다. 차례대로 고객이 있는 정점 번호, 수요, 우선순위다. 정점 번호는 이상 이하이고, 수요와 우선순위는 각각 이상 이하다.
다음 줄에는 전체 예산 가 주어진다. ()
다음 줄에는 간선의 개수 이 주어진다. () 이어지는 개 줄에는 간선 하나의 정보가 정수 세 개로 주어진다. 앞의 두 정수는 간선이 잇는 두 정점의 번호이고, 세 번째 정수는 간선의 비용이다. 정점 번호는 이상 이하이고, 비용은 이상 이하다. 간선에는 방향이 없다.
출력
출력은 표준 출력으로 한다. 테스트 케이스마다 서비스 대상으로 고른 고객의 우선순위 합을 한 줄에 하나씩 출력한다.