export function count(grid) {
let rectangles = 0;
const rows = grid.length;
if (rows === 0) return 0;
const cols = grid[0].length;
for (let r1 = 0; r1 < rows; r1++) {
for (let c1 = 0; c1 < cols; c1++) {
if (grid[r1][c1] === '+') {
for (let r2 = r1 + 1; r2 < rows; r2++) {
if (grid[r2][c1] !== '+' && grid[r2][c1] !== '|') break;
if (grid[r2][c1] === '+') {
for (let c2 = c1 + 1; c2 < cols; c2++) {
if (grid[r1][c2] === '+' && grid[r2][c2] === '+') {
// Check if all edges are valid
let valid = true;
for (let r = r1 + 1; r < r2; r++) {
if ((grid[r][c1] !== '+' && grid[r][c1] !== '|') ||
(grid[r][c2] !== '+' && grid[r][c2] !== '|')) {
valid = false;
break;
}
}
if (!valid) continue;
for (let c = c1 + 1; c < c2; c++) {
if ((grid[r1][c] !== '+' && grid[r1][c] !== '-') ||
(grid[r2][c] !== '+' && grid[r2][c] !== '-')) {
valid = false;
break;
}
}
if (valid) rectangles++;
}
}
}
}
}
}
}
return rectangles;
}