fork(6) download
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. using namespace std;
  5.  
  6. int ans = 0, n = 0;
  7. long long gum[100000];
  8.  
  9. int calculate(long long k)
  10. {
  11. int lb = 0, mb = 0, ub = n-1, Ans = -1;
  12. while(lb <= ub)
  13. {
  14. mb = (ub+lb)/2;
  15. if(gum[mb] < k)
  16. {
  17. lb = mb+1;
  18. Ans = mb;
  19. }
  20. else
  21. {
  22. ub = mb-1;
  23. }
  24. }
  25. return Ans;
  26. }
  27.  
  28. int main()
  29. {
  30. int k = 0, num = 0;
  31. bool keepLooping = true;
  32. cin >> n;
  33. cin >>k;
  34. //long long gum[n];
  35. for(int i=0; i<n; i++)
  36. cin >> gum[i];
  37.  
  38. sort(gum, gum+n);
  39.  
  40. for(int i=0; i<n; i++)
  41. {
  42. num = max(0, (calculate(k-gum[i])-i));
  43. ans += num;
  44. }
  45.  
  46. cout << ans ;
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 3524KB
stdin
7 4
10 1 3 1 5 5 0
stdout
4