#include #include #include using namespace std; int main(){ long long n; cin>>n; vector vec(n); for(long long i=0;i<n;i++){ cin>>vec[i]; } sort(vec.begin(),vec.end()); long long times,answer; if(n%2!=0){ times=(vec[(n-1)/2]-vec[0])+(vec[n-1]-vec[(n-1)/2]); answer=(vec[0]+vec[n-1]+1)/2; }else{ times=(vec[n/2]-vec[0])+(vec[n-1]-vec[n/2]); answer=(vec[0]+vec[n-1]+1)/2; } cout<<times<<" "<<answer; return 0; }
次数与中位数和排序后的左右两侧有关,结果只与左右两侧有关。没有特殊情况,偶数的中位数下中间两个哪个都行,这里取第二个链接。