[传智杯 #5 初赛] D-莲子的物理热力学
看了官方题解,看不懂,借鉴于
http://www.yaotu.net/biancheng/132637.html


代码
#include<iostream>
#include<algorithm>
using namespace std;
#define inf 9223372036854775807
#define io ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
typedef long long ll;
typedef pair <ll,ll> pii;
const ll N=100010;
ll n,k,m,MIN=inf;
ll a[N];
int main(){
io;
cin>>n>>m;
for (ll i = 1; i <= n; i++)
{
cin>>a[i];
}
sort(a+1,a+1+n);
if(m>=n){
MIN=0;
}else if(m==0){
MIN=a[n]-a[1];
}else{
for (ll i = 1; i <= m; i++)
{
ll j=m-2*(i-1);
if(j<0) j=0;
ll sub=abs(a[n-j]-a[i]);
MIN=min(sub,MIN);
}
for (ll i = n; i > n-m; i--)
{
//这个地方坑了我好久
ll j=m-2*(n-i)+1;
if(j<=0) j=1;
ll sub=abs(a[i]-a[j]);
MIN=min(sub,MIN);
}
}
cout<<MIN;
return 0;
}

浙公网安备 33010602011771号