advent-of-code/12021/07/07_2_new.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
}