fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4.  
  5. void fun(){
  6. int n;
  7. cin >> n;
  8. int a[n], mx = 0;
  9. for(int i = 0; i < n; i++){
  10. cin >> a[i];
  11. mx = max(mx, a[i]);
  12. }
  13. sort(a, a+n);
  14. int ans = 0;
  15. for(int i = 0; i < n-2; i++){
  16. for(int j = i+1; j < n-1; j++){
  17. int h = lower_bound(a, a+n, a[i]+a[j]) - a;
  18. int k = upper_bound(a, a+n, mx-a[i]-a[j]) - a;
  19. h = max(h, j+1); k = max(k, j+1);
  20. //cout << "( " << h << ' ' << k << " )" << '\n';
  21. ans += max(h-k, 0ll);
  22. }
  23. }
  24. cout << ans << '\n';
  25. }
  26.  
  27. main() {
  28. int t; cin >> t;
  29. while(t--)fun();
  30. }
Success #stdin #stdout 0s 5316KB
stdin
6
3
1 2 3
4
1 1 2 4
5
7 7 7 7 7
5
1 1 2 2 4
6
2 3 3 4 5 5
5
1 1 1 1 3
stdout
0
0
10
2
16
0