function solution(container) {
const rects = container.querySelectorAll('rect');
const len = rects.length;
// Сначала найдем максимальное значение, чтобы понять размер массива для подсчета
let maxVal = 0;
const values = new Array(len);
for (let i = 0; i < len; i++) {
const val = Number(rects[i].dataset.value);
values[i] = val;
if (val > maxVal) maxVal = val;
}
// Сортировка подсчетом (Counting Sort)
const counts = new Array(maxVal + 1).fill(0);
for (let i = 0; i < len; i++) {
counts[values[i]]++;
}
// Восстанавливаем отсортированный массив
const sorted = [];
for (let i = 0; i <= maxVal; i++) {
while (counts[i] > 0) {
sorted.push(i);
counts[i]--;
}
}
// Ищем максимальный разрыв
let maxGap = 0;
for (let i = 1; i < sorted.length; i++) {
const gap = sorted[i] - sorted[i - 1];
if (gap > maxGap) {
maxGap = gap;
}
}
return maxGap;
}