显然的若l>n则只需要x或y为中点,否则x和y到中点距离相同,我们设置一个函数f来求l到r中所有数到x的距离和,代码就能非常短 #include <bits/stdc++.h> #define int long long using namespace std; int f(int l,int r,int mid){ return mid*(mid-l+1)-(mid+l)*(mid-l+1)/2+(mid+r)*(r-mid+1)/2-mid*(r-mid+1); } signed main(){ int t;cin>>t; while(...