西电水题王又回来了~~~~~
题意:给n个数字,从中任意选2个数字不大于s的可能有多少种
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 2e4+10;
int arr[N];
int main()
{
int n,s;
scanf("%d%d",&n,&s);
for(int i=1;i<=n;i++)
scanf("%d",&arr[i]);
sort(arr+1,arr+n+1);
int ans=0,r=0;
for(int i=1;i<=n;i++)
{
while(r+1<i&&arr[r+1]+arr[i]<=s)
r++;
while(r-1>=0&&arr[r]+arr[i]>s)
r--;
ans+=r;
//cout<<r<<endl;
}
printf("%d\n",ans);
return 0;
}