@[xia_xiaoxiao](/user/670303) 额,不是
by Yukinoshita_Yukino @ 2022-04-10 11:30:15
二分啊 @[xia_xiaoxiao](/user/670303)
by xzy090626 @ 2022-04-10 11:30:20
emmmmm...~~好像明白了~~好像没明白...
by J_T_R @ 2022-04-10 11:30:27
或者map
by Yukinoshita_Yukino @ 2022-04-10 11:30:29
读入也不是重点,主要是您的复杂度是错的
by xzy090626 @ 2022-04-10 11:30:56
嗯嗯嗯!!!~~我听着的呢!!!~~
by J_T_R @ 2022-04-10 11:31:06
cin改成scanf也没啥用,我试过
by yanghaorun2012 @ 2022-04-10 11:38:22
@[xia_xiaoxiao](/user/670303) 这是一个二分的题,暴力的话时间复杂度是$O(n^2)$,所以会超时
by hema5177 @ 2022-04-10 14:29:43
@[xia_xiaoxiao](/user/670303) 嗯,你这道题必须用数据结构或者二分,这也是为什么这道题的算法标签打的是二分
by Inscription_Assassin @ 2022-04-10 18:34:02
@xia_xiaoxiao这是一道二分题,如果不会可以学一下,也可以用STL的lower_bound()和upper_bound()去实现,可以给你看一下我的代码,参考一下。
```cpp
#include<iostream>
#include<algorithm>
using namespace std;
long long n,c,a[200005],ans;
int main(){
cin>>n>>c;
for(long long i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
for(long long i=0;i<n;i++){
if((a[i]-c)<0)continue;
long long x=a[i]-c;
ans+=(upper_bound(a,a+n,x)-a)-(lower_bound(a,a+n,x)-a);
}
cout<<ans;
return 0;
}
```
by 最靓的哥 @ 2022-04-28 21:20:18