给你一个在数轴上的点集 (x_1, x_2, dots, x_n)。 每两个点 (i),(j) 可以在满足以下情况的时候相连: 点 (i) 和点 (j) 均未与其他点相连;(left| x_i - x_j ight| geq z)。那么请你求出最多可以连接多少点对?
Solution
双指针一遍即可
不知道这个题怎么评的分
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 200005;
int n,z,x[N],u[N];
signed main() {
ios::sync_with_stdio(false);
cin>>n>>z;
for(int i=1;i<=n;i++) cin>>x[i];
sort(x+1,x+n+1);
int j=1;
for(int i=1;i<=n;i++) if(x[i]-z>=x[j]) ++j;
cout<<min(j-1,n/2);
}