这道题我看了过了的那两个老哥的做法,发现竟然暴力枚举过了???只能说这题数据很水。。
正解:这道题等价于A+C=B,枚举每个A,看B在不在数组里。
如何看B在不在数组里?遍历?太慢了!
这里用二分的方法来查找数组里首次出现B的位置,再查找B结束的位置,两位置之差+1就是B的个数,答案加上就行。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n, c, a[200100], ans;
int findl(LL x, LL l, LL r)//寻找初...