#include #include using namespace std; int main() { int q, n; int x[10]; int y[10]; cin >> q; while (q--) { cin >> n; int maxx = -10001, maxy = -10001, minx = 10001, miny = 10001; for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; if (x[i] > maxx) maxx = x[i]; if (x[i] < minx) minx = x[i]; if (y[i] > maxy) maxy = y[i]; if (y[i] < miny) miny = y[i]; } if (n < 4) { cout << "YES\n"; } else if (n == 4) { bool yes = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; for (int k = 0; k < n; k++) { if (i == k || j == k) continue; if ((y[k] - y[j]) * (x[k] - x[j]) == (y[k] - y[i]) * (x[k] - x[i])) { yes = false; j = n; i = n; break; } } } } if (yes) cout << "YES\n"; else cout << "NO\n"; } else { int cornerx[4] = {-10001, -10001, 10001, 10001}, cornery[4] = {-10001, 10001, -10001, 10001}; for (int i = 0; i < n; i++) { if (x[i] > cornerx[0] && y[i] > cornerx[0]) { cornerx[0] = x[i]; cornery[0] = y[i]; } if (x[i] > cornerx[1] && y[i] < cornery[1]) { cornerx[1] = x[i]; cornery[1] = y[i]; } if (x[i] < cornerx[2] && y[i] > cornery[2]) { cornerx[2] = x[i]; cornery[2] = y[i]; } if (x[i] < cornerx[3] && y[i] < cornery[3]) { cornerx[3] = x[i]; cornery[3] = y[i]; } } bool yes = true; for (int i = 0; i < n; i++) { bool cornerside = false; if (abs(cornery[0] - cornery[1]) * (cornerx[0] - cornerx[1]) == abs((cornery[0] - y[i]) * (cornerx[0] - x[i]))) { cornerside = true; continue; } if (abs(cornery[1] - cornery[3]) * (cornerx[1] - cornerx[3]) == abs((cornery[1] - y[i]) * (cornerx[1] - x[i]))) { cornerside = true; continue; } if (abs(cornery[3] - cornery[2]) * (cornerx[3] - cornerx[2]) == abs((cornery[2] - y[i]) * (cornerx[2] - x[i]))) { cornerside = true; continue; } if (abs(cornery[3] - cornery[0]) * (cornerx[2] - cornerx[0]) == abs((cornery[2] - y[i]) * (cornerx[2] - x[i]))) { cornerside = true; continue; } yes = false; break; } if (yes) cout << "YES\n"; else cout << "NO\n"; } } return 0; }