fork(2) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. void sortTab(std::string tab[][3] , int size);
  5.  
  6. int main()
  7. {
  8. int howManyStep = 0;
  9.  
  10. std::cin >> howManyStep;
  11. do {
  12. int index = 0;;
  13. int size = 0;
  14. std::cin >> index;
  15. int flag = 0;
  16. std::string tab[index][3];
  17. for (int i = 0 ; i <index ; ++i) {
  18. std::cin >> tab[size][0] >> tab[size][1] >> tab[size][2];
  19. ++size;
  20. }
  21. for (int i = 0 ; i < size ; ++i)
  22. {
  23. for (int j = i+1 ; j < size ; ++j)
  24. {
  25. if (tab[i][1] == tab[j][1] && tab[i][2] == tab[j][2]){
  26. ++flag;
  27. }
  28. }
  29. }
  30. if (flag > 0) {
  31. --howManyStep;
  32. std::cout << std::endl;
  33. }
  34. else {
  35. sortTab(tab, size);
  36. --howManyStep;
  37. }
  38. } while (howManyStep > 0);
  39.  
  40. return 0;
  41. }
  42. void sortTab (std::string tab[][3] , int size) {
  43. for (int i = 0; i < size ; ++i) {
  44. std::string tabTemp[1][3] = {};
  45. for (int j = i+1 ; j < size ; ++j) {
  46. if (tab[i][1] > tab[j][1]) {
  47.  
  48. tabTemp[0][0] = tab[i][0];
  49. tabTemp[0][1] = tab[i][1];
  50. tabTemp[0][2] = tab[i][2];
  51.  
  52. tab[i][0] = tab[j][0];
  53. tab[i][1] = tab[j][1];
  54. tab[i][2] = tab[j][2];
  55.  
  56. tab[j][0] = tabTemp[0][0];
  57. tab[j][1] = tabTemp[0][1];
  58. tab[j][2] = tabTemp[0][2];
  59. }
  60. else if (tab[i][1] == tab[j][1]) {
  61. if (tab[i][2] > tab[j][2]) {
  62. tabTemp[0][0] = tab[i][0];
  63. tabTemp[0][1] = tab[i][1];
  64. tabTemp[0][2] = tab[i][2];
  65.  
  66. tab[i][0] = tab[j][0];
  67. tab[i][1] = tab[j][1];
  68. tab[i][2] = tab[j][2];
  69.  
  70. tab[j][0] = tabTemp[0][0];
  71. tab[j][1] = tabTemp[0][1];
  72. tab[j][2] = tabTemp[0][2];
  73. }
  74. }
  75. }
  76. }
  77. for (int i = 0; i < size ; ++i) {
  78. std::cout << tab[i][0] << " " << tab[i][1] << " " << tab[i][2] << std::endl;
  79. }
  80. std::cout << std::endl;
  81. }
  82.  
Success #stdin #stdout 0s 16064KB
stdin
1
2
ASD 59 0
QWE 0 -90
stdout
QWE 0 -90
ASD 59 0