题意:给你n个房子的距离,问那个房子离别的房子的距离最近,并且输出与别的房子距离的总和
思路:排序一下,中间的房子离别房子距离必然是最少的。
#include <iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define N 510 int house[N]; int main(int argc, char** argv) { int n,t,i,sum,m; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&house[i]); sort(house+1,house+n+1); if(n%2) m=house[n/2+1]; else m=house[n/2]; //printf("!%d\n",m); sum=0; for(i=1;i<=n;i++){ sum+=abs(house[i]-m); } printf("%d\n",sum); } return 0; }