쿠키런

시간 제한1초메모리 제한1024 MB

요약
3 x N 크기 장애물 스테이지에서 점프 J번, 슬라이드 S번 이하로 통과할 때 남는 최대 체력을 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

과거 쿠키런 최고 권위자로 이름을 날렸던 안뇽이는 한때 최애 게임이었던 쿠키런이 벌써 12주년을 맞았다는 소식을 듣고 복귀 유저가 되었다!

쿠키런의 스테이지는 3×N3 \times N 크기의 22차원 배열로 구성되어 있으며, 플레이어(쿠키)는 11번 열(왼쪽 끝)에서 출발해 NN번 열(오른쪽 끝)에 도착해야 한다.

스테이지의 임의의 열에는 3×13 \times 1 크기의 장애물이 있으며, 장애물은 낮은 장애물, 높은 장애물, 상단 장애물 33종류가 있다.

각 장애물은 ‘^’, ‘.’, ‘v’의 조합으로 이루어져 있으며, 낮은 장애물은 점프를 11번 사용해, 높은 장애물은 점프를 22번 사용해, 상단 장애물은 슬라이드를 11번 사용해 각각 피할 수 있다. 점프나 슬라이드를 사용해 장애물을 회피한 후에는 직전의 점프나 슬라이드 상태가 유지되지 않는다.

출발점인 11번 열과 도착점인 NN번 열에는 장애물이 존재하지 않으며, kk번 열에 장애물이 존재한다면 바로 뒤 k+1k + 1번 열에는 장애물이 연속하게 존재하지 않는다.

게임 시작 시점 처음 쿠키의 체력은 HH이며, 장애물의 종류와 관계없이 장애물에 11번 부딪힐 때마다 체력이 KK만큼 감소한다. 이때 체력이 00 이하가 되면 스테이지 클리어에 실패하며, 그렇지 않다면 다음 열로 이동한다. 만약 쿠키가 무사히 NN번 열에 도착한다면 스테이지 클리어에 성공한다.

쿠키런 고인물인 안뇽이는 발가락으로도 스테이지를 클리어할 수 있다고 자신했다. 하지만 안뇽이는 발가락이 짧아서 실제로 발가락으로 게임을 할 수는 없었기 때문에, 결국 고민 끝에 안뇽이는 점프를 JJ번 이하, 슬라이드를 SS번 이하로만 사용해 스테이지를 클리어해보기로 마음먹었다.

3×N3 \times N 크기의 스테이지가 주어질 때, 안뇽이가 스테이지를 클리어했을 때의 최대 체력을 구해보자.

입력

첫 번째 줄에 정수 N,J,S,H,KN, J, S, H, K가 공백으로 구분되어 주어진다.

이어서 33줄에 걸쳐 스테이지의 정보가 주어진다.

출력

안뇽이가 점프를 JJ번 이하, 슬라이드를 SS번 이하로 사용해 스테이지를 클리어했을 때의 최대 체력을 출력한다.

만약 안뇽이가 스테이지를 클리어할 수 없다면 대신 -1을 출력한다.

제한

  • 3≤N≤1003 \le N \le 100
  • 0≤J≤100 \le J \le 10
  • 0≤S≤100 \le S \le 10
  • 1≤H≤2001 \le H \le 200
  • 1≤K≤101 \le K \le 10

예제2

  1. 예제 1

    입력
    13 4 0 15 5
    .....v.......
    .^.^.v.....^.
    .^.^.......^.
    
    예상 출력
    5
    
  2. 예제 2

    입력
    7 0 0 1 1
    ...v...
    ...v...
    .......
    
    예상 출력
    -1