import sequtils,strutils,deques type zahyou = tuple[x : int, y : int] var N,V,Ox,Oy : int sabaku : array[202,array[202,int]] line : seq[int] D = [[1,0],[0,1],[-1,0],[0,-1]] startcost : seq[seq[int]] gorlcost : seq[seq[int]] p : zahyou (N,V,Ox,Oy) = stdin.readline.split.map(parseInt) for i in 0..201: for j in 0..201: sabaku[i][j] = 1000000 for i in 0.. 0: p = update.popFirst k = (p.y * 200 + p.x).int16 s.excl(k) for d in D: if S[p.x + d[0]][p.y + d[1]] > S[p.x][p.y] + sabaku[p.x + d[0]][p.y + d[1]]: S[p.x + d[0]][p.y + d[1]] = S[p.x][p.y] + sabaku[p.x + d[0]][p.y + d[1]] k = ((p.y + d[1]) * 200 + p.x + d[0]).int16 if k notin s: s.incl(k) update.addLast((p.x + d[0],p.y + d[1])) if i == 0: startcost = S else: gorlcost = S var Vo = V - startcost[Oy][Ox] Vo *= 2 Vo += sabaku[Oy][Ox] if Vo > gorlcost[Oy][Ox] or startcost[N][N] < V: echo "YES" else: echo "NO"