10041
就是找中位数,我对偶数情况时取中间两个的哪一个比较了一下,但是网上别人的不用比较就计算,不知道为什么
//============================================================================ // Name : 10041.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; int a[1000]; int N, n, sum1, sum2; int main() { scanf("%d", &N); while(N--) { scanf("%d", &n); for(int i = 0;i < n;i++){ scanf("%d", &a[i]); } sort(a, a+n); if(n%2 == 0) { sum1 = 0; sum2 = 0; for(int i = 0;i < n;i++){ sum1 += (a[i]-a[n/2-1] > 0?a[i]-a[n/2-1]:a[n/2-1]-a[i]); sum2 += (a[i]-a[n/2] > 0?a[i]-a[n/2]:a[n/2]-a[i]); } if(sum1 < sum2) printf("%d\n", sum1); else printf("%d\n", sum2); } else{ sum1 = 0; for(int i = 0;i < n;i++){ sum1 += (a[i]-a[n/2] > 0?a[i]-a[n/2]:a[n/2]-a[i]); } printf("%d\n", sum1); } } return 0; }