''' LastEditTime: 2025-12-30 13:38:58 ''' from typing importList
classSolution: defok(self, grid: List[List[int]], i: int, j: int) -> bool: mask = 0 colCnt = [0] * 3 rowCnt = [0] * 3 for di inrange(3): for dj inrange(3): v = grid[i - di][j - dj] mask |= 1 << v rowCnt[di] += v colCnt[dj] += v if mask != (1 << 10) - 2: returnFalse cnt = grid[i][j] + grid[i - 1][j - 1] + grid[i - 2][j - 2] if grid[i - 2][j] + grid[i - 1][j - 1] + grid[i][j - 2] != cnt: returnFalse ifany(c != cnt for c in colCnt): returnFalse ifany(r != cnt for r in rowCnt): returnFalse returnTrue
defnumMagicSquaresInside(self, grid: List[List[int]]) -> int: returnsum(self.ok(grid, i, j) for j inrange(2, len(grid[0])) for i inrange(2, len(grid)))