杭电acm2083
从n / 2处开始距离最短。
#include <stdio.h> #include <stdlib.h> int cmp(const int *a, const int *b) { return *a - *b; } int main() { int m, n, i, ans, a[10001]; while(~scanf("%d", &m)) { while(m--) { ans = 0; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d", a+i); qsort(a, i, sizeof(int), cmp); for(i=0; i<n/2; i++) ans += a[n/2] - a[i]; for(i=n/2; i<n; i++) ans += a[i] - a[n/2]; printf("%d\n", ans); } } return 0; 1 }