思路:
四条边小于等于 n - 2 时,一定可以,所以直接枚举四条边是否为 n, n - 1,统计每条边上至少会有几个点。
等于 n 时,相邻两条边都必有一个点要被涂色;等于 n - 1 时,算到要涂色的点多的边上。
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
while(T--)
{
int n, u, r, d, l;
cin >> n >> u >> r >> d >> l;
int su = 0, sr = 0, sd = 0, sl = 0;
if(u == n) sl++, sr++;
if(r == n) su++, sd++;
if(d == n) sl++, sr++;
if(l == n) su++, sd++;
if(u == n - 1)
if(r - sr < l - sl) sl++;
else sr++;
if(r == n - 1)
if(u - su < d - sd) sd++;
else su++;
if(d == n - 1)
if(l - sl < r - sr) sr++;
else sl++;
if(l == n - 1)
if(u - su < d - sd) sd++;
else su++;
if(su > u || sr > r || sd > d || sl > l) cout << "NO" << endl;
else cout << "YES" << endl;
}
return 0;
}