낮은 구간 합 행렬
시간 제한2초메모리 제한512 MB
N행 M열 행렬(둘 다 10 이하)에서 최대 K개 원소의 부호를 바꿔 가로 또는 세로 연속 부분합이 모두 S 이하가 되도록 만들 수 있는지 판정한다.
문제
연회에서 카드 한 장을 받았다. 카드에는 행 열의 행렬과 두 정수 , 가 적혀 있다. 행렬의 모든 원소는 정수이고, 위에서 번째 행, 왼쪽에서 번째 열의 정수를 로 나타낸다.
행렬에서 최대 개의 원소를 골라 부호를 바꿀 수 있다. 세로 또는 가로로 연속한 부분 수열 중 합이 보다 큰 것이 없도록 행렬을 만들 수 있다면, 카드를 상품과 교환할 수 있다.
주어진 카드를 상품과 교환할 수 있는지 판별하시오.
입력
입력은 다음과 같은 형식의 단일 테스트 케이스로 주어진다.
$N$ $M$ $K$ $S$
$A_{1,1}$ $A_{1,2}$ $\cdots$ $A_{1,M}$
$\vdots$
$A_{N,1}$ $A_{N,2}$ $\cdots$ $A_{N,M}$
첫째 줄에 네 정수 , , , 가 주어진다 (, , ). 다음 개의 줄은 카드에 적힌 행렬을 나타낸다. 번째 줄에 개의 정수 , , , 가 주어진다 ().
출력
카드를 상품과 교환할 수 있으면 Yes를, 그렇지 않으면 No를 출력한다.