Loading

洛谷 P1296奶牛的耳语 题解

题目传送门

这道题很显然可以用O(n2)的方法来做(记得排序),由于数据较水。。。但还是在for循环中加一些优化:++i,据说这样会快一些...

#include<bits/stdc++.h>
using namespace std;
int n,d,a[1000010],ans;
int main(){
    scanf("%d%d",&n,&d);
    for(int i=1;i<=n;++i) scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    for(int i=1;i<=n;++i)
        for(int j=i+1;j<=n;++j){
            if(a[j]-a[i]>d) break;
            ++ans;
        }
    printf("%d\n",ans);return 0;
}

 

posted @ 2018-05-02 21:04  yzx_1798106406  阅读(268)  评论(0编辑  收藏  举报