Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.56 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Student{
  6. string ident;
  7. float grades;
  8. int meters, month;
  9. };
  10.  
  11. void SelectionSort (Student tab[], unsigned n, char p[] ){
  12. Student temp;
  13. if (p[0] == 'm'){
  14. for(unsigned int i=n-1; i>0; i--){
  15. unsigned int max =0;
  16. for(unsigned int j=1; j <= i ;j++){
  17. if (tab[max].month<tab[j].month)
  18. max = j ;
  19. else if (tab[max].month == tab[j].month){
  20. if (p[1] == 's'){
  21. if (tab[max].grades<tab[j].grades)
  22. max = j;
  23. else if (tab[max].grades == tab[j].grades){
  24. if(tab[max].meters<tab[j].meters)
  25. max = j;
  26. else if (tab[max].meters == tab[j].meters){
  27. if(tab[max].ident>tab[j].ident)
  28. max = j;
  29. }
  30. }
  31. }
  32. else if (p[1] == 'd'){
  33. if (tab[max].meters<tab[j].meters)
  34. max = j;
  35. else if (tab[max].meters == tab[j].meters){
  36. if(tab[max].grades<tab[j].grades)
  37. max = j;
  38. else if (tab[max].grades == tab[j].grades){
  39. if(tab[max].ident<tab[j].ident)
  40. max = j;
  41. }
  42. }
  43. }
  44. }
  45. temp = tab[i];
  46. tab[i] = tab[max];
  47. tab[max]=temp;
  48. }
  49. }
  50. }
  51. if (p[0] == 's'){
  52. for(unsigned int i=n-1; i>0; i--){
  53. unsigned int max =0;
  54. for(unsigned int j=1; j <= i ;j++){
  55. if (tab[max].grades<tab[j].grades)
  56. max = j ;
  57. else if (tab[max].grades == tab[j].grades){
  58. if (p[1] == 'm'){
  59. if (tab[max].month<tab[j].month)
  60. max = j;
  61. else if (tab[max].month == tab[j].month){
  62. if(tab[max].meters<tab[j].meters)
  63. max = j;
  64. else if (tab[max].meters == tab[j].meters){
  65. if(tab[max].ident>tab[j].ident)
  66. max = j;
  67. }
  68. }
  69. }
  70. else if (p[1] == 'd'){
  71. if (tab[max].meters<tab[j].meters)
  72. max = j;
  73. else if (tab[max].meters == tab[j].meters){
  74. if(tab[max].month<tab[j].month)
  75. max = j;
  76. else if (tab[max].month == tab[j].month){
  77. if(tab[max].ident<tab[j].ident)
  78. max = j;
  79. }
  80. }
  81. }
  82. }
  83. temp = tab[i];
  84. tab[i] = tab[max];
  85. tab[max]=temp;
  86. }
  87. }
  88. }
  89. if (p[0] == 'd'){
  90. for(unsigned int i=n-1; i>0; i--){
  91. unsigned int max =0;
  92. for(unsigned int j=1; j <= i ;j++){
  93. if (tab[max].meters<tab[j].meters)
  94. max = j ;
  95. else if (tab[max].meters == tab[j].meters){
  96. if (p[1] == 'm'){
  97. if (tab[max].month<tab[j].month)
  98. max = j;
  99. else if (tab[max].month == tab[j].month){
  100. if(tab[max].grades<tab[j].grades)
  101. max = j;
  102. else if (tab[max].grades == tab[j].grades){
  103. if(tab[max].ident>tab[j].ident)
  104. max = j;
  105. }
  106. }
  107. }
  108. else if (p[1] == 's'){
  109. if (tab[max].grades<tab[j].grades)
  110. max = j;
  111. else if (tab[max].grades == tab[j].grades){
  112. if(tab[max].month<tab[j].month)
  113. max = j;
  114. else if (tab[max].month == tab[j].month){
  115. if(tab[max].ident<tab[j].ident)
  116. max = j;
  117. }
  118. }
  119. }
  120. }
  121. temp = tab[i];
  122. tab[i] = tab[max];
  123. tab[max]=temp;
  124. }
  125. }
  126. }
  127.  
  128. }
  129.  
  130. int main()
  131. {
  132. int n;
  133. cin >> n;
  134. if (n<1 || n>1000000) return 0;
  135. Student Boys[n];
  136. Student Girls[n];
  137. Student temp;
  138. char parameters[3];
  139. cin >> parameters[0] >> parameters[1] >> parameters[2];
  140. for (int i = 0; i<n; i++){
  141. cin >> Girls[i].ident >> Girls[i].grades >> Girls[i].meters >> Girls[i].month >>
  142. Boys[i].ident >> Boys[i].grades >> Boys[i].meters >> Boys[i].month;
  143. }
  144. int tab[6] = {6, 2, 4, 8, 7, 1};
  145. SelectionSort(Girls,n,parameters);
  146. SelectionSort(Boys,n,parameters);
  147. for (int i = n-1; i>-1; i--){
  148. cout << Girls[i].ident << " " << Boys[i].ident << " ";
  149. }
  150. return 0;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement