package main import . "fmt" import . "os" import bf "bufio" import "container/heap" func main() { rd := bf.NewReader(Stdin) var h,w,y,x int Fscan(rd,&h,&w,&y,&x) x-- y-- a := make([][]int, h) v := make([][]bool, h) for i := range a { a[i] = make([]int, w) v[i] = make([]bool, w) for j := range a[i] { Fscan(rd,&a[i][j]) } } dt := []int{-1, 0, 1, 0, -1} cnt := 0 cur := a[y][x] pq := make(PQ, 0, h*w) v[y][x] = true heap.Push(&pq, &Item{y, x, 0}) for pq.Len() > 0 { item := heap.Pop(&pq).(*Item) if item.value > cur { Println("No") return } cnt++ cur += item.value for i, dy := range dt[1:] { dx := dt[i] x := item.x+dx y := item.y+dy if 0<=y&&y