fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int data[100][4];
  5.  
  6. bool bigger(int a, int b) {
  7. if(data[a][3] > data[b][3])
  8. return true;
  9. else if(data[a][3] < data[b][3])
  10. return false;
  11. else if(data[a][2] > data[b][2])
  12. return true;
  13. else if(data[a][2] < data[b][2])
  14. return false;
  15. else if(data[a][1] > data[b][1])
  16. return true;
  17. else
  18. return false;
  19. }
  20.  
  21. void swap(int a, int b) {
  22. int tmp;
  23. for(int i = 0; i < 4; i++) {
  24. tmp = data[a][i];
  25. data[a][i] = data[b][i];
  26. data[b][i] = tmp;
  27. }
  28. }
  29.  
  30. int main() {
  31. int T, N, M;
  32. cin >> T;
  33. while(T--) {
  34. map<string, int> dict;
  35. vector<string> rdict;
  36. string cari;
  37. cin >> N >> M;
  38. cin >> cari;
  39. for(int i = 0; i < N; i++) {
  40. string tmp;
  41. cin >> tmp;
  42. dict[tmp] = i;
  43. rdict.push_back(tmp);
  44. cin >> data[i][1] >> data[i][2] >> data[i][3];
  45. data[i][0] = i;
  46. }
  47. /*
  48. for(auto it = dict.begin(); it != dict.end(); it++)
  49. cout << it->first << ", " << it->second << endl;
  50. for(int i = 0; i < rdict.size(); i++)
  51. cout << i << ", " << rdict[i] << endl;
  52. */
  53. // bubble sort
  54. for(int i = 0; i < N; i++)
  55. for(int j = 1; j < N; j++)
  56. if(bigger(j, j-1)) { // if data[j] > data[j-1]
  57. swap(j, j-1);
  58. }
  59. /*
  60. for(int i = 0; i < N; i++) {
  61. for(int j = 0; j < 4; j++)
  62. cout << data[i][j] << " ";
  63. cout << endl;
  64. }
  65. */
  66. // cari data ke-0 ada di posisi berapa
  67. for(int i = 0; i < N; i++)
  68. if(data[i][0] == dict[cari]) {
  69. if(i < M)
  70. cout << "YA" << endl;
  71. else
  72. cout << "TIDAK" << endl;
  73. break;
  74. }
  75.  
  76. }
  77. return 0;
  78. }
Success #stdin #stdout 0.01s 5304KB
stdin
2
3 1
P0002
P0001 10 100 100
P0002 0 0 200
P0003 1 100 100
3 2
P0002
P0001 10 100 100
P0002 0 0 200
P0003 1 100 100
stdout
YA
YA