function do_lapjv(data) {
const time = performance.now();
const n = data.length,
m = Math.ceil(Math.sqrt(n));
const costs = data.map((d) =>
data.map((_, k) => {
const i = k % m,
j = (k - i) / m;
const dx = d[0] - i - 0.5,
dy = d[1] - j - 0.5;
return dx * dx + dy * dy;
})
);
return { time: performance.now() - time, assign: lap(n, costs) };
}