원숭이도 나무에서 떨어진다
시간 제한1초메모리 제한1024 MB
매가 있는 나무는 방문할 수 없고, 각 나무는 최대 두 번까지만 지날 수 있을 때, S에서 출발해 정확히 H번 이동하여 E에 도착하면서 얻는 바나나 개수의 최댓값을 구한다.
문제
밀림 속 배고픈 원숭이는 나무를 돌아다니며 바나나를 최대한 많이 수확하려고 한다. 밀림은 개의 나무와 개의 가지로 이루어져 있고, 각 나무는 부터 까지 번호가 매겨져 있다. 원숭이는 각 나무에서 가지를 이용하여 다른 모든 나무로 이동할 수 있다. 각 나무에는 일정량의 바나나가 열려 있으며, 원숭이는 해당 나무에 처음 방문했을 때만 바나나를 수확할 수 있다. 한 번 수확한 나무에서는 다시 바나나를 얻을 수 없다.
원숭이는 번 나무를 먼저 방문한 후 번 나무까지 이동하며 바나나를 수확하려 한다. 단, 어떤 나무에 천적인 매가 자리 잡고 있다면, 그 나무는 절대로 방문할 수 없으며 와 번 나무는 매가 존재하지 않는다. 또한, 원숭이는 체력을 만큼 가지고 있으며, 나무를 한 번 이동할 때마다 체력이 씩 감소한다.
원숭이는 같은 나무를 최대 2번까지만 방문할 수 있으며, 세 번째부터는 더 이상 해당 나무를 방문할 수 없다. 원숭이는 이동 중에 번 나무를 경유할 수 있지만, 체력이 정확히 이 되었을 때의 위치가 번 나무여야만 바나나를 저장할 수 있다. 그렇지 않으면 아무리 바나나를 많이 수확했더라도 나무에서 떨어지면서 바나나를 모두 잃게 된다.
원숭이가 수확할 수 있는 바나나의 최대 개수를 구해보자.
입력
첫째 줄에 정수 과 정수 가 공백으로 구분되어 주어진다.
둘째 줄에 시작 나무 번호 와 도착 나무 번호 가 공백으로 구분되어 주어진다. 시작 나무 번호와 도착 나무 번호는 항상 다르다.
셋째 줄에 번 나무에 열려 있는 바나나 개수를 의미하는 개의 정수 이 공백으로 구분되어 주어진다.
넷째 줄에 번 나무에 매가 있는지 여부를 의미하는 개의 정수 이 공백으로 구분되어 주어진다. 매가 있으면 , 없으면 이다.
다섯째 줄부터 개의 줄에 걸쳐 연결된 나무 쌍의 번호 가 공백으로 구분되어 주어진다.
출력
체력이 일 때 번 나무에 도달할 수 있다면, 수확한 바나나의 최대 개수를 출력한다.
체력이 일 때 번 나무에 도달하지 못하면 -1을 출력한다.