二分查找即可,偷懶直接用了庫函數
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int num[1005];
int main()
{
int n, sum = 0, i = 0;
scanf("%d", &n);
while (i != n)
cin >> num[i++];
sort(num, num + n);
for (int x = 0; x < n - 1; x++)
for (int y = x + 1; y < n; y++)
{
sum += upper_bound(num + y, num + n, (3 * num[y] - 2 * num[x])) - lower_bound(num + y, num + n, (2 * num[y] - num[x]));
}
printf("%d\n", sum);
}