• Source
    1. #include <iostream>
    2. #include <algorithm>
    3. using namespace std;
    4.  
    5. struct data
    6. {
    7. string name;
    8. int diem;
    9. } typedef doibong;
    10.  
    11. int cmp (doibong a, doibong b)
    12. {
    13. if (a.diem<b.diem) return 0;
    14. else if (a.diem==b.diem)
    15. {
    16. if (a.name>b.name) return 0;
    17. }
    18. return 1;
    19. }
    20.  
    21. int main ()
    22. {
    23. int t;
    24. cin>>t;
    25. for (int i=1; i<=t; i++)
    26. {
    27. int n;
    28. cin>>n;
    29. string myF, myO;
    30. cin>>myF>>myO;
    31. doibong N[25];
    32. int dMyF, dMyO;
    33. for (int i=1; i<=n; i++)
    34. {
    35. cin>>N[i].name>>N[i].diem;
    36. if (N[i].name==myF) dMyF=N[i].diem;
    37. if (N[i].name==myO) dMyO=N[i].diem;
    38. }
    39. int dF, dO;
    40. //TH1 Win;
    41. dF=dMyF+3;
    42. dO=dMyO+0;
    43. for (int i=1; i<=n; i++)
    44. {
    45. if (N[i].name==myF)
    46. {
    47. N[i].diem=dF;
    48. }
    49. if (N[i].name==myO)
    50. {
    51. N[i].diem=dO;
    52. }
    53. }
    54. sort (N+1, N+n+1, cmp);
    55.  
    56. for (int i=1; i<=n; i++)
    57. {
    58. if (N[i].name==myF)
    59. {
    60. cout<<i<<" ";
    61. break;
    62. }
    63. }
    64.  
    65. //TH3 lose;
    66. dF=dMyF+0;
    67. dO=dMyO+3;
    68. for (int i=1; i<=n; i++)
    69. {
    70. if (N[i].name==myF)
    71. {
    72. N[i].diem=dF;
    73. }
    74. if (N[i].name==myO)
    75. {
    76. N[i].diem=dO;
    77. }
    78. }
    79. sort (N+1, N+n+1, cmp);
    80. for (int i=1; i<=n; i++)
    81. {
    82. if (N[i].name==myF)
    83. {
    84. cout<<i<<" ";
    85. break;
    86. }
    87. }
    88.  
    89. //TH2 draw;
    90. dF=dMyF+1;
    91. dO=dMyO+1;
    92. for (int i=1; i<=n; i++)
    93. {
    94. if (N[i].name==myF)
    95. {
    96. N[i].diem=dF;
    97. }
    98. if (N[i].name==myO)
    99. {
    100. N[i].diem=dO;
    101. }
    102. }
    103. sort (N+1, N+n+1, cmp);
    104. for (int i=1; i<=n; i++)
    105. {
    106. if (N[i].name==myF)
    107. {
    108. cout<<i;
    109. break;
    110. }
    111. }
    112.  
    113. cout<<endl;
    114. }
    115. return 0;
    116. }