• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. struct data
    5. {
    6. int x;
    7. int y;
    8. } typedef data;
    9.  
    10. int arr[10];
    11. void khoitao ()
    12. {
    13. for (int i=1; i<=4; i++)
    14. {
    15. arr[i]=i;
    16. }
    17. }
    18.  
    19. int sinhhv4 ()
    20. {
    21. int vt=-1;
    22. for (int i=4; i>1; i--)
    23. {
    24. if (arr[i]>arr[i-1])
    25. {
    26. vt=i-1;
    27. break;
    28. }
    29. }
    30. if (vt!=-1)
    31. {
    32. for (int i=4; i>=1; i--)
    33. {
    34. if (arr[i]>arr[vt])
    35. {
    36. int tg=arr[vt];
    37. arr[vt]=arr[i];
    38. arr[i]=tg;
    39. break;
    40. }
    41. }
    42. for (int i=vt+1; i<=4; i++)
    43. {
    44. for (int j=vt+1; j<4; j++)
    45. {
    46. if (arr[j]>arr[j+1])
    47. {
    48. int tg=arr[j+1];
    49. arr[j+1]=arr[j];
    50. arr[j]=tg;
    51. }
    52. }
    53. }
    54. return 1;
    55. }
    56. else return -1;
    57. }
    58.  
    59. int main ()
    60. {
    61. int n;
    62. cin>>n;
    63. for (int k=1; k<=n; k++)
    64. {
    65. data toado[5];
    66. for (int i=1; i<=4; i++)
    67. {
    68. cin>>toado[i].x>>toado[i].y;
    69. }
    70. khoitao ();
    71. data dinh[5];
    72. int kt=0;
    73. while (1)
    74. {
    75.  
    76. for (int i=1; i<=4; i++)
    77. {
    78. dinh[i].x=toado[arr[i]].x;
    79. dinh[i].y=toado[arr[i]].y;
    80. }
    81. if (dinh[1].x==dinh[4].x && dinh[1].y!=dinh[4].y && dinh[2].x==dinh[3].x && dinh[2].y!=dinh[3].y && dinh[1].y==dinh[2].y && dinh[1].x!=dinh[2].x && dinh[4].y==dinh[3].y && dinh[4].x!=dinh[3].x)
    82. {
    83. kt=1;
    84. break;
    85. }
    86. if (sinhhv4 ()==-1) break;
    87. }
    88. if (kt==1) cout<<"YES"<<endl;
    89. else cout<<"NO"<<endl;
    90. }
    91. return 0;
    92. }