문제
ANA 도시는 개의 교차로와, 개의 양방향 도로로 이루어져 있고, 교차로는 번부터 번까지 번호가 매겨져 있다. 번 교차로에는 ANA 도시의 유일한 소방서가 위치한다. 소방서는 화재가 발생한 교차로에 소방차를 출동시켜서 화재를 진압시킨다.
소방차에는 물탱크가 있어서 이곳에 저장한 물을 화재를 진압하는데에 사용할 수 있다. 소방차는 물탱크가 빈 상태로 출발하지만, 이동 중에 교차로에 설치된 소화전을 이용해서 물탱크에 물을 충전할 수 있다. 번째 교차로에서 충전할 수 있는 물의 양은 리터인데, 이를 초과해서 이용할 경우 번째 교차로에 사는 주민들에게 피해를 줄 수 있다. 교차로에서 물을 충전하는데에는 시간이 걸리지 않고, 소방차의 물탱크의 용량에도 제한이 없다.
어느 날, 번 교차로에 화재가 발생했다. 소방차는 화재가 발생한 교차로까지 최단 경로로 이동하면서 동시에 최대한 많은 양의 물을 가지고 도착할 수 있는 경로로 이동한다. 이 때, 소방차의 이동 거리와 물탱크에 충전된 물의 양은 얼마일까?
입력
첫째 줄에 ANA 도시의 교차로의 개수를 의미하는 이 주어진다.
둘째 줄에 정수 이 주어진다. 는 번째 교차로에서 충전할 수 있는 물의 양이다.
셋째 줄에 ANA 도시의 양방향 도로의 개수를 의미하는 이 주어진다.
넷째 줄부터 개의 줄에 양방향 도로가 연결하는 양 끝 교차로의 번호 와 도로의 길이 이 주어진다.
번째 줄에 소방서가 위차한 교차로의 번호와 화재가 발생한 교차로의 번호를 의미하는 가 주어진다.
출력
소방차가 번 교차로에서 번 교차로까지 최단 경로로 이동하면서 동시에 최대한 많은 양의 물을 가지고 도착했을 때, 소방차의 이동 거리와 물탱크에 충전된 물의 양을 출력한다. 만약 소방차가 번 교차로에 도착할 수 없다면 -1만을 출력한다.
예제 입력 1
8
7 2 4 5 5 1 1 3
10
1 2 1
1 3 2
1 4 1
2 5 3
2 6 3
3 6 2
4 7 4
5 8 1
6 8 1
7 8 3
1 8
예제 출력 1
5 17
순으로 교차로를 방문하면 경로의 길이는 , 물탱크에 충전된 물의 양은 리터가 된다.
예제 입력 2
4
3 2 1 4
3
1 2 2
1 2 3
2 3 1
1 4
예제 출력 2
-1
- 문제를 만든 사람
- 201802070_김시온
- 알고리즘 분류
코드를 제출하려면 로그인이 필요합니다.
로그인| # | 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 | |
|---|---|---|---|---|---|---|---|
| 8645 | 🥇 | 안우진 | PyPy | 364ms | 117096KB | 916B | |
| 8627 | 🥈 | 조서현 | PyPy | 388ms | 240932KB | 918B |
| # | 사용자 | 문제 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 | |
|---|---|---|---|---|---|---|---|---|---|
| 8645 | 맞았습니다 | PyPy | 364ms | 117096KB | 916B | 2026. 05. 31. 04:24 | |||
| 8644 | 시간 초과 | PyPy | - | - | 915B | 2026. 05. 31. 04:22 | |||
| 8643 | 시간 초과 | PyPy | - | - | 891B | 2026. 05. 31. 04:21 | |||
| 8642 | 메모리 초과 | Python | - | - | 891B | 2026. 05. 31. 04:19 | |||
| 8641 | 틀렸습니다 | Python | - | - | 900B | 2026. 05. 31. 04:17 | |||
| 8627 | 맞았습니다 | PyPy | 388ms | 240932KB | 918B | 2026. 05. 30. 15:26 |