동굴

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

요약
벽이 있는 격자에서 시작 칸의 램프가 거리 L 이내의 칸을 밝힐 때, 얻은 루피 합에서 L*C를 뺀 값이 최대가 되는 L을 찾는다.
난이도

보통10점 중 4점

유형
BFS, 그래프, 누적 합
정답자
아직 제출이 없습니다

문제

젤다는 처음으로 모험을 떠나 들뜬 마음으로 하이랄 왕국을 구하기 위해 동분서주하고 있다. 그러나 현실은 녹록지 않다. 모험 자금을 마련하기 위해 루피(화폐 단위)를 모으는 데 열중할 수밖에 없었다.

어느 날, 젤다는 어두운 동굴을 발견했다. 동굴 안에는 루피가 흩어져 있지만 너무 어두워 램프를 이용해 빛을 밝혀 루피를 모으고 싶다. 동굴은 N×MN \times M 크기의 격자로 이루어져 있으며 위에서부터 rr번째, 왼쪽에서부터 cc번째에 위치한 칸을 (r,c)(r,c)로 나타낸다. 일부 칸은 벽으로 막혀 있어 젤다가 이동하거나 램프 빛이 통과할 수 없다.

램프는 동굴 입구인 (S_r,S_c)(S\_r, S\_c)에 고정되어 있으며, 젤다는 램프를 들고 이동할 수 없다. 다만 램프 빛의 세기를 음이 아닌 정수 LL로 자유롭게 설정할 수 있다. 램프 빛의 세기가 LL인 경우 램프가 놓인 위치에서 최단 거리가 LL이하인 모든 칸을 밝힌다. 최단 거리는 출발 칸을 제외하고, 상하좌우로 인접한 칸을 지나 도착 칸까지 이동할 때 지나야 하는 최소 칸의 개수이다. 젤다는 램프 빛이 밝히고 있는 모든 칸의 루피를 얻을 수 있으나, 설정한 램프 빛의 세기에 따라 비용이 발생한다. 비용은 빛의 세기 11당 단위 비용 CC가 발생한다. 만약 램프 빛의 세기를 LL로 설정한다면 젤다는 L×CL \times C만큼 비용을 소모하게 된다.

소모한 비용을 L×CL \times C 얻은 루피의 합을 TT라 할 때, 젤다가 얻는 이윤은 T−L×CT-L \times C이다. 젤다는 동굴에서 자신이 얻을 수 있는 최대 이윤을 알고 싶다. 모험 중이라 바쁜 젤다는 당신에게 이 일을 부탁했다. 젤다를 도와 동굴에서 얻을 수 있는 최대 이윤을 구해보자.

입력

첫 번째 줄에 동굴의 행, 열의 크기 NN과 MM, 램프 빛의 세기 당 비용 CC가 공백으로 구분되어 주어진다. (2≤N,M≤1,000;1≤C≤100)(2\leq N,M \leq 1\\,000; 1\leq C \leq 100)

두 번째 줄에 램프가 고정되어 있는 시작 위치 S_rS\_r, S_cS\_c가 공백으로 구분되어 주어진다. (1≤S_r≤N;1≤S_c≤M)(1\leq S\_r \leq N; 1\leq S\_c \leq M)

세 번째 줄부터 동굴의 정보가 NN개의 줄에 걸쳐 한 줄에 MM개씩 공백으로 구분되어 주어진다. 수는 1,0001\\,000보다 작거나 같은 음이 아닌 정수 또는 −1-1로 구성되며 −1-1인 경우는 통과할 수 없는 벽을, 나머지는 해당 칸에서 얻을 수 있는 루피를 나타낸다. 램프가 있는 시작 위치에는 벽이 존재하지 않지만, 루피는 존재할 수 있다. 또한 격자 밖은 모두 벽으로 이루어져 있어 젤다가 이동하거나 램프 빛이 통과할 수 없다.

출력

램프 빛의 세기를 조절하여 젤다가 얻을 수 있는 최대 이윤을 출력한다. 얻을 수 있는 이윤이 없다면 00을 출력한다.

예제2

  1. 예제 1

    입력
    5 5 2
    3 3
    1 1 0 -1 10
    2 -1 5 -1 1
    13 -1 0 -1 1
    1 -1 -1 1 1
    1 1 1 1 1
    
    예상 출력
    10
    
  2. 예제 2

    입력
    2 2 2
    1 1
    0 1
    -1 2
    
    예상 출력
    0