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