两个人的最短路相同,因为只有两行,那么要么在同一个位置,要么刚好错开在不同的行,因为第一行到第二行(2,n)会比第二行的多一步,所以有一种就是(x1!=x2&&y1==y2+1) 然后另一种就是 让下面的右边防障碍,让它往上多一步,那么第一行的就在这个左边就行了(x1!=x2&&y2==y1+1&&y2<n-1),注意因为这个情况第二行右边必须要有一个地方方障碍所以还得y2<n-1
#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
using ld = long double;
using PII=pair<ll,ll>;
using PIII=pair<int,pair<int,int>>;
const ld ESP = 1e-10;
const ld PI = acosl(-1);
const int N=1e5+10;
const int M=2e5+10;
// const int mod = 1000000007;
const int mod = 998244353;
//随机化
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> Tp(1, 1000000000);
// cout<<fixed<<setprecision(10);
void solve(){
int n;
cin>>n;
int x1,x2,y1,y2;
cin>>x1>>y1;
cin>>x2>>y2;
if(x1>x2){
swap(x1,x2);
swap(y1,y2);
}
if((x1==x2&&y1==y2)||(x1!=x2&&y1==y2+1)||(x1!=x2&&y2==y1+1&&y2<n-1)){
cout<<"YES"<<'\n';
}else{
cout<<"NO"<<'\n';
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int _=1;
// cin>>_;
while(_--){
solve();
}
return 0;
}

京公网安备 11010502036488号