#include using namespace std; using ll = long long; int N; ll L[200*200]; vector> graph; vector dijkstra(int start) { const ll INF=1e10+10; vector dist(N*N, INF); dist[start]=0; priority_queue pq;pq.emplace(-start); const int mask=(1<<20)-1; while (!pq.empty()) { auto x=-pq.top(); pq.pop(); auto [dv,v]=pair(x>>20,x&mask); if (dv>dist[v]) continue; for (auto &w:graph[v]) { ll dw=dv+L[w]; if (dw>N>>V>>Oy>>Ox; --Ox,--Oy; graph.resize(N*N,unordered_set()); const int oasis=Ox*N+Oy; const int start=0,goal=N*N-1; for(int i=0;i>L[i]; for(int i=0;i0; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cout<<(solve()?"YES":"NO")<