首先我们第一时间想到的是暴力,直接按照题意来写就行了。
暴力代码
#include<bits/stdc++.h>
using namespace std;
int a[1145140];
int n,c,ans=0;
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i]-a[j]==c){
ans++;
}
}
}
cout<<ans<<endl;
return 0;
}
但是暴力显然会TLE,只拿了76分。
怎么办?
我们可以先把数组排个序,然后用两个函数查找小于等于和小于的,用变量累加就行了。
记住一定要开long long。