fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n;
  7. cin >> n; // 6
  8.  
  9. int k1, k2;
  10. cin >> k1 >> k2; // k1 = 1, k2 = 3
  11.  
  12. int a[n+1]; // 1-based indexing
  13.  
  14. // index 1 2 3 4 5 6
  15. // array 1 1 1 1 2 2
  16. for(int i = 1; i <= n; i++)
  17. {
  18. cin >> a[i];
  19. }
  20.  
  21. int count = 0;
  22.  
  23. for(int i = 1; i <= n-3; i++)
  24. {
  25. // i = 1
  26. for(int j = i+1; j <= n-2; j++)
  27. {
  28. // j = 2
  29. for(int k = j+1; k <= n-1; k++)
  30. {
  31. // k = 3
  32. for(int l = k+1; l <= n; l++)
  33. {
  34. // i=1, j=2, k=3, l=4
  35. // a[1] + a[2] = 1 + 1 = 2
  36. // a[3] + a[4] = 1 + 1 = 2
  37. // 2 > 1 is true, but 2 > 3 is false
  38. // count = 0
  39.  
  40. // i=1, j=2, k=3, l=5
  41. // a[1] + a[2] = 1 + 1 = 2
  42. // a[3] + a[5] = 1 + 2 = 3
  43. // 2 > 1 is true, but 3 > 3 is false
  44. // count = 0
  45.  
  46. // i=1, j=2, k=3, l=6
  47. // a[1] + a[2] = 1 + 1 = 2
  48. // a[3] + a[6] = 1 + 2 = 3
  49. // Condition false
  50. // count = 0
  51.  
  52. // i=1, j=2, k=4, l=5
  53. // a[1] + a[2] = 2
  54. // a[4] + a[5] = 1 + 2 = 3
  55. // Condition false
  56. // count = 0
  57.  
  58. // i=1, j=2, k=4, l=6
  59. // a[1] + a[2] = 2
  60. // a[4] + a[6] = 1 + 2 = 3
  61. // Condition false
  62. // count = 0
  63.  
  64. // i=1, j=2, k=5, l=6
  65. // a[1] + a[2] = 1 + 1 = 2
  66. // a[5] + a[6] = 2 + 2 = 4
  67. // 2 > 1 and 4 > 3: true
  68. // count = 1
  69.  
  70. // i=1, j=3, k=4, l=5
  71. // a[1] + a[3] = 2
  72. // a[4] + a[5] = 3
  73. // Condition false
  74. // count = 1
  75.  
  76. // i=1, j=3, k=4, l=6
  77. // a[1] + a[3] = 2
  78. // a[4] + a[6] = 3
  79. // Condition false
  80. // count = 1
  81.  
  82. // i=1, j=3, k=5, l=6
  83. // a[1] + a[3] = 1 + 1 = 2
  84. // a[5] + a[6] = 2 + 2 = 4
  85. // Condition true
  86. // count = 2
  87.  
  88. // i=1, j=4, k=5, l=6
  89. // a[1] + a[4] = 2
  90. // a[5] + a[6] = 4
  91. // Condition true
  92. // count = 3
  93.  
  94. // i=2, j=3, k=4, l=5
  95. // a[2] + a[3] = 2
  96. // a[4] + a[5] = 3
  97. // Condition false
  98. // count = 3
  99.  
  100. // i=2, j=3, k=4, l=6
  101. // a[2] + a[3] = 2
  102. // a[4] + a[6] = 3
  103. // Condition false
  104. // count = 3
  105.  
  106. // i=2, j=3, k=5, l=6
  107. // a[2] + a[3] = 2
  108. // a[5] + a[6] = 4
  109. // Condition true
  110. // count = 4
  111.  
  112. // i=2, j=4, k=5, l=6
  113. // a[2] + a[4] = 2
  114. // a[5] + a[6] = 4
  115. // Condition true
  116. // count = 5
  117.  
  118. // i=3, j=4, k=5, l=6
  119. // a[3] + a[4] = 2
  120. // a[5] + a[6] = 4
  121. // Condition true
  122. // count = 6
  123.  
  124. if(a[i] + a[j] > k1 && a[k] + a[l] > k2)
  125. {
  126. count = count + 1;
  127. }
  128. }
  129. }
  130. }
  131. }
  132.  
  133. cout << count; // Output: 6
  134. }
  135. /*
  136. 6
  137. 1 3
  138. 1 1 1 1 2 2
  139. o/p: 6
  140. */
Success #stdin #stdout 0s 5320KB
stdin
6
1 3 
1 1 1 1 2 2
stdout
6