Một dòng trong bảng ban đầu sẽ bị xóa khi và chỉ khi dòng đó không có ô đen nào. Tương tự, một cột trong bảng ban đầu sẽ bị xóa khi và chỉ khi cột đó không có ô đen nào.
Ta tạo hai mảng đánh dấu như sau:
Với mỗi ô đen (x_i, y_i), ta sẽ cập nhập freeRow[x_i] = false và freeCol[y_i] = false.
Gọi cntR là số dòng có ít nhất một ô đen (số chỉ số i sao cho freeRow[i] = false), cntC là số cột có ít nhất một ô đen (số chỉ số i sao cho freeCol[i] = false). Đáp án sẽ là cntR \times cntC.
Độ phức tạp: O(n + m + k)