20 lines
278 B
Awk
20 lines
278 B
Awk
function abs(n){ return (n>=0) ? n : -n }
|
|
function sum(n){ return n*(n+1)/2 }
|
|
|
|
BEGIN{ RS="," }
|
|
|
|
{
|
|
c[NR] = $1
|
|
if(maxpos<$1) maxpos=$1
|
|
}
|
|
|
|
END{
|
|
min = 2147483647
|
|
for(i=1;i<=maxpos;i++){
|
|
difs = 0
|
|
for(j in c) difs += sum(abs(c[j]-i))
|
|
if(difs<min) min = difs
|
|
}
|
|
print min
|
|
}
|