UFO

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

요약
행이나 열을 따라 일정한 높이에서 최대 R개의 블록을 파괴하는 레이저 사격을 시뮬레이션한 뒤 살아남은 블록이 가장 많은 P×P 영역의 블록 수를 구합니다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 시뮬레이션, 누적 합
정답자
아직 제출이 없습니다

문제

사막에 불시착한 외계 우주선을 파괴해야 한다. 우주선은 단위 정육면체 블록으로 이루어져 있고, 바닥 층은 N×MN \times M 직사각형이다. 이 직사각형의 (i,j)(i, j) 칸에는 블록이 여러 개 쌓여 있으며, 각 칸의 층은 바닥부터 11층, 22층 순으로 번호를 매긴다. 행 번호는 북쪽에서 남쪽으로 11부터 NN까지이고, 열 번호는 서쪽에서 동쪽으로 11부터 MM까지이다. 아래 그림은 N=4N = 4, M=8M = 8인 우주선을 위에서 본 모습이다.

블록은 레이저로만 자를 수 있는 금속이라서 우주선 네 면에 레이저포를 설치했다. 레이저는 발사한 면에 수직이고 지면과 평행하게, 정해진 한 층을 따라 날아간다.

발사 한 번은 면, 번호, 높이 hh로 정해진다. 서쪽에서 쏜 레이저는 지정된 행을 따라 11열에서 MM열 방향으로 나아가고, 동쪽에서 쏜 레이저는 같은 행을 MM열에서 11열 방향으로 나아간다. 북쪽에서 쏜 레이저는 지정된 열을 따라 11행에서 NN행 방향으로 나아가고, 남쪽에서 쏜 레이저는 같은 열을 NN행에서 11행 방향으로 나아간다.

레이저는 그 직선 위의 칸을 하나씩 지난다. 지나는 칸에 블록이 hh개 이상 쌓여 있으면 hh층의 블록을 파괴하고, 그 위에 있던 블록은 한 층씩 내려앉아 그 칸의 높이가 11만큼 줄어든다. 한 칸에서 파괴되는 블록은 최대 한 개이며, 레이저는 곧바로 다음 칸으로 나아간다. 블록이 hh개보다 적게 쌓인 칸은 그대로 통과한다. 레이저는 블록을 RR개 파괴하면 멈추고, 그전에 우주선을 벗어나도 멈춘다.

KK번의 발사가 끝난 뒤 P×PP \times P 크기의 정사각형 구역에 공습을 가한다. 남아 있는 블록이 가장 많은 구역을 골라 그 안의 블록을 모두 파괴한다. 공습으로 파괴하는 블록의 최대 개수를 구하라.

입력

첫째 줄에 정수 NN, MM, RR, KK, PP가 주어진다 (1≤N×M≤1061 \le N \times M \le 10^6, 1≤R≤101 \le R \le 10, 1≤K≤3×1051 \le K \le 3 \times 10^5, 1≤P≤min⁡(N,M,10)1 \le P \le \min(N, M, 10)).

다음 NN개 줄에는 각각 MM개의 정수가 주어진다. ii번째 줄의 jj번째 수는 (i,j)(i, j) 칸에 쌓인 블록의 개수이고, 11 이상 10610^6 이하이다.

다음 KK개 줄에는 발사 정보가 한 줄에 하나씩, 문자 하나와 정수 두 개가 공백으로 구분되어 주어진다. 문자는 서쪽이면 W, 동쪽이면 E, 남쪽이면 S, 북쪽이면 N이다. W와 E는 첫 번째 정수가 11 이상 NN 이하의 행 번호이고, N과 S는 11 이상 MM 이하의 열 번호이다. 두 번째 정수는 발사 높이이고 11 이상 10610^6 이하이다.

출력

KK번의 발사가 끝난 뒤 P×PP \times P 구역에 남아 있는 블록 개수의 최댓값을 출력한다.

힌트

첫 번째 예제의 발사를 모두 끝낸 뒤 우주선의 모습이다. 색칠한 정사각형이 블록이 가장 많이 남은 2×22 \times 2 구역이다.

예제7

  1. 예제 1

    입력
    4 8 2 6 2
    1 1 1 1 1 1 1 1
    1 2 3 1 1 1 3 1
    1 2 1 1 3 1 1 1
    1 1 1 1 1 1 1 2
    N 2 2
    W 2 2
    W 2 3
    E 2 1
    S 4 1
    S 7 1
    
    예상 출력
    6
    
  2. 예제 2

    입력
    1 1 1 1 1
    5
    W 1 1
    
    예상 출력
    4
    
  3. 예제 3

    입력
    3 3 3 4 2
    2 3 1
    1 4 2
    3 1 1
    W 1 5
    E 2 9
    N 3 4
    S 1 100
    
    예상 출력
    10
    
  4. 예제 4

    입력
    3 4 10 4 2
    1 1 1 1
    1 1 1 1
    1 1 1 1
    W 1 1
    N 1 1
    E 3 1
    S 4 1
    
    예상 출력
    2
    
  5. 예제 5

    입력
    5 5 2 10 3
    1 1 1 1 1
    1 9 5 9 1
    1 5 1 5 1
    1 9 5 9 1
    1 1 1 1 1
    W 2 5
    E 2 5
    N 2 5
    S 2 5
    W 4 9
    E 4 9
    N 4 9
    S 4 9
    W 3 1
    E 3 1
    
    예상 출력
    46
    
  6. 예제 6

    입력
    6 7 4 20 1
    8 9 8 8 9 10 4
    3 9 8 11 10 3 2
    8 5 3 2 9 12 11
    1 10 7 8 11 12 10
    11 3 10 1 9 2 1
    1 4 4 10 1 8 6
    N 5 4
    E 6 5
    N 1 11
    W 4 11
    S 4 9
    W 6 5
    S 7 4
    S 1 2
    W 4 2
    S 4 2
    W 6 1
    E 2 1
    N 4 12
    N 4 2
    E 6 5
    S 1 5
    S 1 7
    W 2 4
    W 1 1
    N 7 8
    
    예상 출력
    12
    
  7. 예제 7

    입력
    4 9 3 15 4
    4 3 6 5 6 3 2 4 1
    3 4 3 6 4 6 5 2 5
    1 6 5 2 4 3 2 3 2
    1 5 2 1 5 6 3 6 4
    W 1 1
    E 1 4
    N 2 6
    N 3 5
    S 9 2
    W 2 5
    W 4 5
    N 8 4
    N 9 1
    W 2 7
    S 6 3
    N 5 1
    S 4 3
    S 6 5
    E 1 4
    
    예상 출력
    50