思路:设最后答案的区间为[l,r],那么r-l等于n/2,因为在(l,r)中的点都是其中一个人挖掉的,[0,l)和(r,n]中的点是另一个人挖掉的,两者相等。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define pi acos(-1.0) #define pii pair<int,int> #define mem(a,b) memset(a,b,sizeof(a)) const int INF=0x7f7f7f7f; const int N=2e5+5; int a[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int ans=INF; for(int i=0;i<n;i++) { if(i+n/2>=n)break; ans=min(ans,a[i+n/2]-a[i]); } cout<<ans<<endl; return 0; }