Cho ma trận n x n khởi tạo 0. Danh sách các cặp (r, c). Với mỗi cặp, tăng 1 tất cả ô có hàng < r và cột < c. Sau tất cả cập nhật, đếm số ô có giá trị lớn nhất.
Ví dụ: input_list=[[3,5],[4,6],[5,3]] → kết quả 9.
Giải thuật
- Giá trị lớn nhất nằm ở góc trên bên trái của hình chữ nhật giao của tất cả các vùng cập nhật.
- Tìm min_row = min(r_i), min_col = min(c_i).
- Số ô = min_row * min_col.
Ví dụ mã Python
def solve(input_list):
xpos = 0
ypos = 0
for item in input_list:
if xpos == 0:
xpos = item[0]
ypos = item[1]
else:
xpos = min(xpos, item[0])
ypos = min(ypos, item[1])
return xpos * ypos
print(solve([[3, 5], [4, 6], [5, 3]])) # Output: 9
Đầu vào
[[3, 5], [4, 6], [5, 3]]
Đầu ra
9