• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. struct hcn
    5. {
    6. long long a;
    7. long long b;
    8. } typedef hcn;
    9.  
    10. int sinh3[]={1, 2, 3};
    11.  
    12. int sinh ()
    13. {
    14. int vt=-1;
    15. for (int i=2; i>=1; i--)
    16. {
    17. if (sinh3[i]>sinh3[i-1])
    18. {
    19. vt=i-1;
    20. break;
    21. }
    22. }
    23. if (vt!=-1)
    24. {
    25. for (int i=2; i>=0; i--)
    26. {
    27. if (sinh3[i]>sinh3[vt])
    28. {
    29. int tg=sinh3[i];
    30. sinh3[i]=sinh3[vt];
    31. sinh3[vt]=tg;
    32. break;
    33. }
    34. }
    35. for (int i=vt+1; i<3; i++)
    36. {
    37. for (int j=vt+1; j<2; j++)
    38. {
    39. if (sinh3[j]>sinh3[j+1])
    40. {
    41. int tg=sinh3[j];
    42. sinh3[j]=sinh3[j+1];
    43. sinh3[j+1]=tg;
    44. }
    45. }
    46. }
    47. return 1;
    48. }
    49. else return 0;
    50. }
    51.  
    52. int main ()
    53. {
    54. //IN;
    55. hcn re[3]; //re: rectangle
    56. for (int i=0; i<3; i++)
    57. {
    58. cin>>re[i].a>>re[i].b;
    59. }
    60. //OUT;
    61. //Sap xep cac canh;
    62. for (int i=0; i<3; i++)
    63. {
    64. if (re[i].a>re[i].b)
    65. {
    66. int tg=re[i].b;
    67. re[i].b=re[i].a;
    68. re[i].a=tg;
    69. }
    70. }
    71. //TH1: 3 hcn chong nhau;
    72. if (re[0].b==re[1].b && re[1].b==re[2].b && re[0].a+re[1].a+re[2].a==re[0].b)
    73. {
    74. cout<<re[0].b;
    75. return 0;
    76. }
    77. //TH2: 2 cap + 1 nen
    78. hcn vt[4];
    79. while (1)
    80. {
    81. for (int i=0; i<3; i++)
    82. {
    83. vt[sinh3[i]].a=re[i].a;
    84. vt[sinh3[i]].b=re[i].b;
    85. }
    86. for (int i=1; i<=2; i++)
    87. {
    88. long long a1, b1;
    89. if (i==1)
    90. {
    91. a1=vt[1].a;
    92. b1=vt[1].b;
    93. }
    94. else
    95. {
    96. a1=vt[1].b;
    97. b1=vt[1].a;
    98. }
    99. for (int j=1; j<=2; j++)
    100. {
    101. long long a2, b2;
    102. if (j==1)
    103. {
    104. a2=vt[2].a;
    105. b2=vt[2].b;
    106. }
    107. else
    108. {
    109. a2=vt[2].b;
    110. b2=vt[2].a;
    111. }
    112. for (int k=1; k<=2; k++)
    113. {
    114. long long a3, b3;
    115. if (k==1)
    116. {
    117. a3=vt[3].a;
    118. b3=vt[3].b;
    119. }
    120. else
    121. {
    122. a3=vt[3].b;
    123. b3=vt[3].a;
    124. }
    125.  
    126. if (a1+a2==a3 && b1==b2 && b2+b3==a3)
    127. {
    128. cout<<a3;
    129. return 0;
    130. }
    131. }
    132. }
    133. }
    134. if (sinh()==0) break;
    135. }
    136. cout<<"0";
    137. return 0;
    138. }