fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int nilai[100][4];
  5.  
  6. bool bandingkan(int a, int b) {
  7. if(nilai[a][3] > nilai[b][3]) return true;
  8. else if(nilai[a][3] < nilai[b][3]) return false;
  9. else if(nilai[a][2] > nilai[b][2]) return true;
  10. else if(nilai[a][2] < nilai[b][2]) return false;
  11. else if(nilai[a][1] > nilai[b][1]) return true;
  12. else return false;
  13. }
  14.  
  15. void tukar(int a, int b) {
  16. int tmp;
  17. for(int i = 0; i < 4; i++) {
  18. tmp = nilai[a][i];
  19. nilai[a][i] = nilai[b][i];
  20. nilai[b][i] = tmp;
  21. }
  22. }
  23.  
  24. int main() {
  25. int T, N, M;
  26. cin >> T;
  27. while(T--) {
  28. // input data
  29. cin >> N >> M;
  30. for(int i = 0; i < N; i++) {
  31. nilai[i][0] = i+1;
  32. cin >> nilai[i][1] >> nilai[i][2] >> nilai[i][3];
  33. }
  34. // bubble sort
  35. for(int i = 0; i < N; i++)
  36. for(int j = 1; j < N; j++)
  37. if(bandingkan(j, j-1)) {
  38. tukar(j, j-1);
  39. }
  40. for(int i = 0; i < N; i++) {
  41. for(int j = 0; j < 4; j++)
  42. cout << nilai[i][j] << " ";
  43. cout << endl;
  44. }
  45. }
  46. return 0;
  47. }
  48. /*
  49.   2 0 0 200
  50. > 1 10 100 100
  51. > 3 1 100 100
  52. */
  53.  
  54.  
  55. /* sorting
  56. O(N^2) -> bubble, insertion, selection
  57. O(N*log(N)) -> mergesort, quick
  58. */
  59.  
  60. /*
  61.  
  62. N = a*b -> a < b
  63. a > sqrt(N) dan b > sqrt(N) -> a*b > N -> kontradiksi
  64. a <= sqrt(N)
  65.  
  66. Big-O = perubahan runtime tergantung variabel apa & seberapa
  67. O(N)
  68. N = 1 -> rt = 1ms
  69. N = 10 -> rt = 10ms
  70.  
  71. O(sqrt(N))
  72. N = 1 -> rt = 1ms
  73. N = 100 -> rt = 10ms
  74.  
  75. O(1)
  76. N = 1 -> rt = 1ms
  77. N = 100 -> rt = 1ms
  78.  
  79.  
  80. O(N^2) > O(N*sqrt(N)) > O(N*log N) > O(N) > O(sqrt(N)) > O(log N) > O(1)
  81. O(E+V):
  82. for(i = 1 -- E) {
  83. ...
  84. }
  85. for(i = 1 -- V) {
  86. ...
  87. }
  88.  
  89. O(E*V)
  90. for(i = 1 -- E) {
  91. for(j = 1 -- V) {
  92. ...
  93. }
  94. }
  95.  
  96. */
Success #stdin #stdout 0s 5308KB
stdin
1
3 1
10 100 100
0 0 200
1 100 100
stdout
2 0 0 200 
1 10 100 100 
3 1 100 100