暴力枚举四个角,总共十六种情况,分别判断四条边,同时满足则方案成立
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,u,r,d,l;
bool check(int op)
{
int a = op >> 3 & 1;//第一位
int b = op >> 2 & 1;//第二位
int x = op >> 0 & 1;//第三位
int y = op >> 1 & 1;//第四位
//四条边需要同时满足,反过来说,只要有一条边不满足,则可以返回false
if(!(a + b <= u && u <= a + b + n - 2)) return false;
if(!(b + y <= r && r <= b + y + n - 2)) return false;
if(!(x + y <= d && d <= x + y + n - 2)) return false;
if(!(a + x <= l && l <= a + x + n - 2)) return false;
return true;
}
int main()
{
int T;
cin >> T;
while(T--)
{
cin >> n >> u >> r >> d >> l;
bool flag = false;
for(int op = 0;op < 16;op++)//枚举四个角一共十六种情况
{
if(check(op))
{
flag = true;
break;
}
}
if(flag) puts("YES");
else puts("NO");
}
return 0;
}