先进行排序

对每种情况进行分类讨论

注意下形成对角线的的两种方式

#include <iostream>
#include<algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,x1,y1,x2,y2;
    cin>>n>>x1>>y1>>x2>>y2;
    if(x1>x2){swap(x1,x2),swap(y1,y2);}// 先排个序
    if(x1==x2&&y1!=y2)cout<<"NO";//同行不同列
    else if(x1==x2&&y1==y2)cout<<"YES";//相同
    else if(y1==y2)cout<<"NO";//同列不同行
    else{//都不同的情况
        if((x1==2&&y1==n)||(x2==2&&y2==n))cout<<"NO";//如果有一个在终点
        else if(y1-y2==1)cout<<"YES";//上边的行列更大
        else if(y1-y2==-1&&n-y2!=1)cout<<"YES";
        else cout<<"NO";//相差太多 以及下面行列更大
    }
    return 0;
}