You can just do binary search and solve it in $O(nlogn)$
time complexity.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,a,x;
long long ans=0;
cin>>n>>k;
vector <int> v;
for(int i=0;i<n;i++){
cin>>a;
v.push_back(a);
}
sort(v.begin(),v.end());
vector <int>::iterator p=v.begin();
for(int i=0;i<n;i++,p++){
if(v[i]>=k){
continue;
}
x=k-v[i]-1;
vector <int>::iterator it=upper_bound(p,v.end(),x);
ans+=it-p;
if(v[i]<=x){
ans--;
}
}
cout<<ans;
return 0;
}