#include #define rep(i, n) for(int i=0;ipii; int solve(vectorvec){ int n = vec.size(); bool flag = true; int X = 1e9, Y = -1e9; sort(vec.begin(), vec.end()); rep(i, n){ if(vec[i].first == vec[0].first) X = min(X, vec[i].second), Y = max(Y, vec[i].second); if(vec[i].first == vec[n-1].first) X = min(X, vec[i].second), Y = max(Y, vec[i].second); } sets1, s2; rep(i, n){ if(vec[i].first == vec[0].first) continue; if(vec[i].first == vec[n-1].first) continue; if(vec[i].second < Y && vec[i].second > X) flag = false; if(vec[i].second < X) s1.insert(vec[i].second); if(vec[i].second > Y) s2.insert(vec[i].second); } flag &= s1.size() <= 1; flag &= s2.size() <= 1; return flag; } int main() { int n, m, q,x, y; cin >> q; while(q--){ cin >> n; vectorvec; rep(i, n){ cin >> x >> y; vec.push_back(pii(x, y)); } sort(vec.begin(), vec.end()); int flag = solve(vec); rep(i, n) swap(vec[i].first, vec[i].second); flag &= solve(vec); if(flag) cout << "YES\n"; else cout << "NO\n"; } return 0; }