Codeforces - Match Points
题目链接: Codeforces - Match Points 首先考虑二分答案。 怎么check呢?肯定是最小的mid个和最大的mid个匹配。 然后就做完了。 AC代码: # pragma GCC optimize("-Ofast","-funroll-all-loops") # include <bits/stdc++.h> //#define int long long using namespace std ; const int N = 2e5 + 10 ; int n , z , x [ N ] ; inline int check ( int mid ) { for ( int i = 1 ; i <= mid ; i ++ ) if ( x [ n - mid + i ] - x [ i ] < z ) return 0 ; return 1 ; } signed main ( ) { cin >> n >> z ; for ( int i = 1 ; i <= n ; i ++ ) scanf ( "%d" , & x [ i ] ) ; sort ( x + 1 , x + 1 + n ) ; int l = 0 , r = n / 2 ; while ( l < r ) { int mid = l + r + 1 >> 1 ; if ( check ( mid