#include #include #include #include #include #include using namespace std; int n,hp,ox,oy; vector> map; int foot[201][201][2]; int main(){ int i,j,k; cin>>n>>hp>>ox>>oy; map.push_back(vector()); for (i=0;i()); vector &v=map.back(); v.push_back(999); for(j=0;j>k; v.push_back(k); } } k=0; list> queue; queue.push_back(vector{1,1,hp,0}); for (;!queue.empty();queue.pop_front()){k++; vector &v=queue.front(); if (v[0]==n && v[1]==n){ cout<<"Yes"<=v[2]) continue; foot[v[0]][v[1]][v[3]]=v[2]; v[2]-=map[v[0]][v[1]]; if (v[2]<=0) continue; if (!v[3] && v[0]==ox && v[1]==oy){ v[3]=1; v[2]*=2; } if (1{v[0]-1,v[1],v[2],v[3]}); if (1{v[0],v[1]-1,v[2],v[3]}); if (v[0]{v[0]+1,v[1],v[2],v[3]}); if (v[1]{v[0],v[1]+1,v[2],v[3]}); //queue.sort([](vector &le,vector &re){return le[0]+le[1]>re[0]+re[1];}); } cout<<"No"<