화물열차
- 시간 제한
- 2s
- 메모리 제한
- 1024MB
- 제출
- 0
- 정답
- 0
- 맞힌 사람
- 0
- 정답 비율
- 0.0%
문제
IOI 철도는 개의 철도 노선을 운영하고 있다. IOI 철도선에는 일직선 위에 늘어선 개의 역이 있으며, 순서대로 부터 까지의 번호가 붙어 있다. 각 () 에 대해, 역 와 역 사이는 선로로 연결되어 있고, 그 길이는 이다.
IOI 철도는 화물을 취급하고 있다. 역 에는 화물이 개씩 놓여 있으며, 역 () 에 놓여 있는 화물의 가치는 이다.
IOI 철도는 화물열차를 편성 보유하고 있다. 이 열차는 처음에 역 에 있으며, IOI 철도선 위를 양방향으로 주행할 수 있다. 각 역에서는 그 역에 놓여 있는 화물을 열차에 싣거나, 열차에 실려 있는 화물을 내려서 그 역에 놓아둘 수 있다.
이 화물열차를 이용하여 역 에 놓여 있는 화물을 역 로 수송하려고 한다. 단, 이 열차에는 화물을 개 이하로만 실을 수 있다. 즉, 어느 시점에서도 열차에 화물이 개 이상 실려 있는 것은 허용되지 않는다. 또한 이 열차는 연료 사정상 최대 총 거리 만큼만 주행할 수 있다. 그렇기 때문에 모든 화물을 역 로 수송할 수는 없을지도 모른다.
IOI 철도의 사장인 JOI 군은 이 조건 하에서 화물열차를 적절히 주행시켜, 최종적으로 역 에 놓여 있는 화물의 가치의 합을 가능한 한 크게 하고 싶다.
화물열차의 정보와 각 역에 놓여 있는 화물의 정보가 주어질 때, 최종적으로 역 에 놓여 있는 화물의 가치의 합으로 달성 가능한 최댓값을 구하는 프로그램을 작성하시오.
제한
- .
- .
- .
- ().
- 입력되는 값은 모두 정수이다.
서브태스크
- ( 점) , ().
- ( 점) ().
- ( 점) .
- ( 점) .
- ( 점) .
- ( 점) 추가 제약이 없다.
입력
입력은 다음 형식으로 주어진다.
출력
최종적으로 역 에 놓여 있는 화물의 가치의 합으로 달성 가능한 최댓값을 줄로 출력한다.
예제 입력 1
4 1 10
1 1 1
예제 출력 1
2
예를 들어, 다음과 같이 화물열차를 주행시키면 최종적으로 역 에 놓여 있는 화물의 가치의 합을 로 만들 수 있다.
처음에 화물열차는 역 에 있다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 가치 의 화물을 역 에 놓는다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 가치 의 화물을 역 에 놓는다.
열차가 주행한 총 거리는 이며, 열차가 총 거리 이하로만 주행할 수 있다는 조건을 만족한다.
이때 최종적으로 역 에 놓여 있는 화물의 가치의 합은 이다. 최종적으로 역 에 놓여 있는 화물의 가치의 합을 이상으로 만들 수는 없으므로, 를 출력한다.
이 예제는 모든 서브태스크의 제약을 만족한다.
예제 입력 2
7 3 16
1 1 1 1 1 1
예제 출력 2
5
예를 들어, 다음과 같이 화물열차를 주행시키면 최종적으로 역 에 놓여 있는 화물의 가치의 합을 로 만들 수 있다.
처음에 화물열차는 역 에 있다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 으로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 개의 가치 의 화물을 모두 역 에 놓는다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 으로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 개의 가치 의 화물을 모두 역 에 놓는다.
열차가 주행한 총 거리는 이며, 열차가 총 거리 이하로만 주행할 수 있다는 조건을 만족한다.
이때 최종적으로 역 에 놓여 있는 화물의 가치의 합은 이다. 최종적으로 역 에 놓여 있는 화물의 가치의 합을 이상으로 만들 수는 없으므로, 를 출력한다.
이 예제는 서브태스크 의 제약을 만족한다.
예제 입력 3
5 2 12
40 30 20 10
예제 출력 3
100
예를 들어, 다음과 같이 화물열차를 주행시키면 최종적으로 역 에 놓여 있는 화물의 가치의 합을 으로 만들 수 있다.
처음에 화물열차는 역 에 있다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 가치 의 화물과 가치 의 화물을 역 에 놓는다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 으로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 가치 의 화물과 가치 의 화물을 역 에 놓는다.
- 화물열차를 역 로 주행시킨다.
- 역 에 놓여 있는 가치 의 화물과 가치 의 화물을 화물열차에 싣는다.
- 화물열차를 역 로 주행시킨다.
- 화물열차에 실려 있는 가치 의 화물과 가치 의 화물을 역 에 놓는다.
열차가 주행한 총 거리는 이며, 열차가 총 거리 이하로만 주행할 수 있다는 조건을 만족한다.
이때 최종적으로 역 에 놓여 있는 화물의 가치의 합은 이다. 최종적으로 역 에 놓여 있는 화물의 가치의 합을 이상으로 만들 수는 없으므로, 을 출력한다.
이 예제는 서브태스크 의 제약을 만족한다.
예제 입력 4
5 1 11
2 7 1 8
예제 출력 4
10
이 예제는 서브태스크 의 제약을 만족한다.
예제 입력 5
9 3 14
54640 754112 604290 105866 591907 801383 502975 379373
예제 출력 5
2214425
이 예제는 서브태스크 의 제약을 만족한다.
코드를 제출하려면 로그인이 필요합니다.
로그인제출 내역이 없습니다.
아직 맞은 사람이 없습니다.
제출 내역이 없습니다.