Cho hai mảng A (kích thước N) và B (kích thước M) cùng một ma trận nhị phân N x M (1: vị trí có số nguyên dương trong ma trận gốc, 0: vị trí là 0). Ta cần xây dựng ma trận gốc sao cho A[i] là phần tử lớn nhất hàng i, B[j] là phần tử lớn nhất cột j.
Quy tắc: tại vị trí (i, j) nếu ma trận nhị phân là 1 thì giá trị = min(A[i], B[j]), ngược lại là 0.
Ví dụ minh họa
def print_original_mat(A, B, mat):
N = len(A)
M = len(B)
for i in range(N):
for j in range(M):
if mat[i][j] == 1:
print(min(A[i], B[j]), end=" ")
else:
print(0, end=" ")
print()
A = [4, 2, 3]
B = [3, 1, 0, 0, 4, 0, 5]
mat = [
[1, 0, 0, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1, 1],
[1, 1, 0, 1, 1, 0, 0]
]
print_original_mat(A, B, mat)
Đầu vào
[4, 2, 3], [3, 1, 0, 0, 4, 0, 5], [[1,0,0,0,1,0,1], [0,0,1,0,0,1,1], [1,1,0,1,1,0,0]]
Đầu ra
3 0 0 0 4 0 4 0 0 0 0 0 0 2 3 1 0 0 3 0 0