/* #include #include #include #include #include #include using namespace std; #define N 100000 int T; long long n, v; long long a[N + 1]; long long num; long long sum; int main() { scanf("%d",&T); while(T--) { scanf("%lld %lld",&n, &v); for(int i = 0;i < n;i++) { scanf("%lld",&a[i]); } sort(a, a + n); sum = 0; num = 0; for(int i = 0;i < n;i++) { sum += a[i]; if(sum > v) { break; } num++; } printf("%lld\n",num); } }*/ #include #include #include #include #include #include #include #include using namespace std; #define N 1000 #define M 5 double pi; double secos; int t; double x[N + 1], y[N + 1]; int a[M]; int flag; double xx[M], yy[M]; double xv[M], yv[M]; bool is_same(double x,double y) { if(fabs(x - y) <= 0.000001) { return true; } return false; } double get_len(int i,int j) { return sqrt((xx[i] - xx[j]) * (xx[i] - xx[j]) + (yy[i] - yy[j]) * (yy[i] - yy[j])); } double get_len1(double *xv, double *yv, int a) { return sqrt((xv[a] * xv[a]) + yv[a] * yv[a]); } double get_angle_cos(int i,int j,int k) { double len1 = get_len(i, j); double len2 = get_len(j, k); xv[0] = xx[i] - xx[j]; xv[1] = xx[j] - xx[k]; yv[0] = yy[i] - yy[j]; yv[1] = yy[j] - yy[k]; len1 = get_len1(xv, yv, 0); len2 = get_len1(xv, yv, 1); if(len1 * len2 <= 0.0000001) { return 100000000; } double sum = xv[0] * xv[1] + yv[0] * yv[1]; return sum / (len1 * len2); } bool check() { int flag = 0; for(int i = 0;i < 4;i++) { if(!is_same(x[i], x[i + 1] || !is_same(y[i], y[i + 1]))) { flag = 1; break; } } if(flag == 0){ return true; } // cout << "sss" << endl; int flag1 = 0; for(int i = 0;i <= 4;i++) { int j = (i + 1) % 5; int k = (j + 1) % 5; double g = get_angle_cos(i, j, k); // cout << i << j << k << endl; // cout << "secos == " << secos << "g = " << g << endl; // cout << "secos == " << secos << " " << get_angle_cos(i, j, k) << endl; if(!is_same(secos, g)) { return false; } } return true; } int main() { pi = acos(-1.0); secos = cos(0.4 * pi); scanf("%d",&t); while(t--) { flag = 0; for(int i = 0;i < 5;i++){ a[i] = i; } for(int i = 0;i < M;i++) { scanf("%lf %lf", &x[i], &y[i]); } do{ for(int i = 0;i < M;i++){ xx[i] = x[a[i]]; yy[i] = y[a[i]]; } if(check()) { printf("Yes\n"); flag = 1; break; } }while(next_permutation(a, a + M)); /* if(check()){ printf("Yes\n"); }*/ if(!flag) { printf("No\n"); } } }