Logo
(追記) (追記ここまで)

33872번 - 원숭이도 나무에서 떨어진다

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB190625631.461%

문제

밀림 속 배고픈 원숭이는 나무를 돌아다니며 바나나를 최대한 많이 수확하려고 한다. 밀림은 $N$개의 나무와 $N-1$개의 가지로 이루어져 있고, 각 나무는 1ドル$부터 $N$까지 번호가 매겨져 있다. 원숭이는 각 나무에서 가지를 이용하여 다른 모든 나무로 이동할 수 있다. 각 나무에는 일정량의 바나나가 열려 있으며, 원숭이는 해당 나무에 처음 방문했을 때만 바나나를 수확할 수 있다. 한 번 수확한 나무에서는 다시 바나나를 얻을 수 없다.

원숭이는 $S$번 나무를 먼저 방문한 후 $E$번 나무까지 이동하며 바나나를 수확하려 한다. 단, 어떤 나무에 천적인 매가 자리 잡고 있다면, 그 나무는 절대로 방문할 수 없으며 $S$와 $E$번 나무는 매가 존재하지 않는다. 또한, 원숭이는 체력을 $H$만큼 가지고 있으며, 나무를 한 번 이동할 때마다 체력이 1ドル$씩 감소한다.

원숭이는 같은 나무를 최대 2번까지만 방문할 수 있으며, 세 번째부터는 더 이상 해당 나무를 방문할 수 없다. 원숭이는 이동 중에 $E$번 나무를 경유할 수 있지만, 체력이 정확히 0ドル$이 되었을 때의 위치가 $E$번 나무여야만 바나나를 저장할 수 있다. 그렇지 않으면 아무리 바나나를 많이 수확했더라도 나무에서 떨어지면서 바나나를 모두 잃게 된다.

원숭이가 수확할 수 있는 바나나의 최대 개수를 구해보자.

입력

첫째 줄에 정수 $N$과 정수 $H$가 공백으로 구분되어 주어진다.$(2 \leq N \leq 25;1 \leq H \leq 25)$

둘째 줄에 시작 나무 번호 $S$와 도착 나무 번호 $E$가 공백으로 구분되어 주어진다. 시작 나무 번호와 도착 나무 번호는 항상 다르다.$(1 \leq S, E \leq N;S \neq E)$

셋째 줄에 $i$번 나무에 열려 있는 바나나 개수를 의미하는 $N$개의 정수 $B_1,\cdots,B_N$이 공백으로 구분되어 주어진다.$(0 \leq B_i \leq 10 ,000円)$

넷째 줄에 $i$번 나무에 매가 있는지 여부를 의미하는 $N$개의 정수 $K_1,\cdots,K_N$이 공백으로 구분되어 주어진다. 매가 있으면 1ドル,ドル 없으면 0ドル$이다.$(0 \leq K_i \leq 1)$

다섯째 줄부터 $N-1$개의 줄에 걸쳐 연결된 나무 쌍의 번호 $u, v$가 공백으로 구분되어 주어진다.$(1 \leq u, v \leq N)$

출력

체력이 0ドル$일 때 $E$번 나무에 도달할 수 있다면, 수확한 바나나의 최대 개수를 출력한다.

체력이 0ドル$일 때 $E$번 나무에 도달하지 못하면 -1을 출력한다.

제한

예제 입력 1

3 4
1 3
0 5 10
0 0 0
1 2
2 3

예제 출력 1

15

예제 입력 2

4 4
1 4
5 10 20 30
0 0 1 0
1 2
2 3
3 4

예제 출력 2

-1

힌트

출처

University > 숙명여자대학교 > 제5회 숙명여자대학교 프로그래밍 경진대회 (SMUPC) E번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /