L2-2 三足鼎立
Time limit:400ms
Memory limit:64MB
通过两边之和大于第三边,可以找出这些这些所有国家中,符合条件的对数,排序再二分查找就可以过了,注意要避免重复。
ac代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,p,sum;
int x[200005];
signed main(){
cin>>n>>p;
for(int i = 1;i <= n;++i)
cin>>x[i];
sort(x + 1,x + n + 1);
for(int i = 1;i <= n;++i){
int l = upper_bound(x + i + 1,x + n + 1,fabs(p - x[i])) - x - 1;
int r = lower_bound(x + i + 1,x + n + 1,p + x[i]) - x - 1;
sum += (r - l);
}
cout<<sum;
return 0;
}