题解 P1296 【奶牛的耳语】
这题并不难别看n<=10^6,实际开10^5也能过(数据过水)。
只要把每只奶牛的位置读入数组a
排序一波
再来枚举,每个位置加上d是否超过下一个位置
如果超过s++ 如果不超过就直接下一位枚举。
来自蒟蒻的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s=0,a[100001],i,j,d,n;//s总对数,a存放奶牛的位置;
cin>>n>>d;//输入;
for (i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);//快排;
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
if (a[i]+d>=a[j]) s++;
else break;//进行下个位置的枚举;
cout<<s;
wwwwwwwwwwwwwwwwwwww//防止抄袭!!!!!抄袭无耻!!!!!
}