其他分享
首页 > 其他分享> > P1296 奶牛的耳语

P1296 奶牛的耳语

作者:互联网

先将所有奶牛的坐标从小到大排序,然后通过双指针(也可以二分)查找第一个超出第\(i\)头奶牛交流范围\(d\)的奶牛的坐标\(r\),同时答案累加上\(r-i-1\)(和第\(i\)头奶牛范围不超过\(d\)的奶牛数,减一是除去第\(i\)头奶牛自身)。

const int N=1e6+10;
int a[N];
int n,d;

int main()
{
    cin>>n>>d;

    for(int i=0;i<n;i++) cin>>a[i];

    sort(a,a+n);

    int res=0;
    int r=0;
    for(int i=0;i<n;i++)
    {
        while(r<n && a[r]-a[i] <= d)
            r++;
        res+=r-i-1;
    }
    cout<<res<<endl;

    //system("pause");
    return 0;
}

标签:const,int,P1296,坐标,耳语,1e6,奶牛
来源: https://www.cnblogs.com/fxh0707/p/14615134.html