昨天晚上太纠结了...因为C题数组少开了一位,还风骚地锁住,想要去黑别人...然后刚点完就觉得不对,数组貌似开小了,然后...然后就后悔也来不及了,最后判题的时候以为暴零了,其实是在pending...最后就最水的A题过了,唉,这rating掉到解放前了ToT
就是个枚举+二分....唉,昨天脑子僵掉了

#include<iostream> #include<algorithm> using namespace std; int va[110000]; int main() { int n,k,i; __int64 ans; while(scanf("%d%d",&n,&k)!=EOF) { ans=0; for(i=1;i<=n;i++) scanf("%d",&va[i]); for(i=1;i<=n;i++) { int now=upper_bound(va+1,va+n+1,va[i]+k)-va; __int64 cnt=now-i-1; ans+=cnt*(cnt-1)/2; } printf("%I64d\n",ans); } return 0; }