물류 창고 건설
여러 지점을 도로로 연결한 물류망이 있다. 물류망의 일부 지점에는 생산 공장이 있고, 일부 지점에는 배송 센터가 있다.
새로운 물류 창고를 지을 지점은 다음 조건을 모두 만족해야 한다.
- 생산 공장이나 배송 센터가 있는 지점이 아니다.
- 가장 가까운 생산 공장까지의 최단 거리가 \(x\) 이하이다.
- 가장 가까운 배송 센터까지의 최단 거리가 \(y\) 이하이다.
조건을 만족하는 지점 중에서 가장 가까운 생산 공장까지의 거리와 가장 가까운 배송 센터까지의 거리의 합이 최소가 되는 지점을 선택하려고 한다.
가능한 거리 합의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 지점의 수 \(V\)와 도로의 수 \(E\)가 공백으로 구분되어 주어진다. 각 지점에는 1번부터 \(V\)번까지 번호가 붙어 있다.
둘째 줄부터 \(E\)개의 줄에 걸쳐 도로의 정보 \(u, v, w\)가 공백으로 구분되어 주어진다. 이는 \(u\)번 지점과 \(v\)번 지점을 길이가 \(w\)인 도로가 양방향으로 연결한다는 뜻이다.
다음 줄에 생산 공장의 수 \(M\)과 거리 제한 \(x\)가 공백으로 구분되어 주어진다.
다음 줄에 생산 공장이 있는 \(M\)개 지점의 번호가 주어진다.
다음 줄에 배송 센터의 수 \(S\)와 거리 제한 \(y\)가 공백으로 구분되어 주어진다.
다음 줄에 배송 센터가 있는 \(S\)개 지점의 번호가 주어진다.
출력
조건을 만족하는 지점이 있다면 두 최단 거리 합의 최솟값을 출력한다.
조건을 만족하는 지점이 없다면 -1을 출력한다.
제한 사항
- \(3 \le V \le 100,000\)
- \(0 \le E \le 300,000\)
- \(1 \le w \le 10,000\)
- \(1 \le M, S \le V-2\)
- \(1 \le x, y \le 100,000,000\)
- 하나의 시설 목록에 같은 지점 번호가 두 번 이상 주어지지 않는다.
- 하나의 지점에 생산 공장과 배송 센터가 모두 있을 수 있다.
예제 입력 1
6 7
1 2 2
2 3 2
3 4 2
4 5 2
5 6 2
1 6 20
2 5 3
1 5
1
1 5
6
예제 출력 1
7
예제 설명 1
2번 지점에서 가장 가까운 생산 공장까지의 거리는 2이고, 가장 가까운 배송 센터까지의 거리는 5이다. 두 거리 모두 제한 이하이며 합은 7이다.
5번 지점에서도 두 거리의 합이 7이다. 이보다 거리 합이 작은 지점은 없다.
예제 입력 2
4 2
1 2 3
3 4 3
1 10
1
1 10
4
예제 출력 2
-1
코멘트