HDU 2083 简易版之最短距离 --- 水题

时间:2021-10-05 12:03:07

HDU 2083 简易版之最短距离

/* HDU 2083 简易版之最短距离 */
#include <cstdio>
#include <algorithm>
using namespace std; const int maxn = ;
int a[maxn]; int main()
{
#ifdef _LOCAL
freopen("D:\\input.txt", "r", stdin);
#endif int t;
scanf("%d", &t);
while (t--){
int n;
scanf("%d", &n);
for (int i = ; i <= n; ++i){
scanf("%d", a + i);
}
sort(a + , a + n + ); //处理6 4 2这种输入
int ans = * ; //定义最大值
for (int i = ; i <= n; ++i){
//以i为起点
int sum = ;
//加上到i之前的点的距离的和
for (int j = ; j < i; ++j){
sum += (a[i] - a[j]);
}//for(j)
//加上到i之后的点的距离的和
for (int j = i + ; j <= n; ++j){
sum += (a[j] - a[i]);
}
//若总和更小则更新总和
if (sum < ans){
ans = sum;
}
}//for(i)
printf("%d\n", ans); }//while(t) return ;
}