সমস্যা বিবরণ
দুটি অ্যারে A (আকার N) এবং B (আকার M) এবং একটি N x M বাইনারি ম্যাট্রিক্স দেওয়া আছে যেখানে 1 মানে মূল ম্যাট্রিক্সে পজিটিভ ইন্টিজার ছিল এবং 0 মানে ০ ছিল। মূল ম্যাট্রিক্স পুনর্গঠন করতে হবে যাতে A[i] = i-তম সারির সর্বোচ্চ উপাদান এবং B[j] = j-তম কলামের সর্বোচ্চ উপাদান হয়।
উদাহরণস্বরূপ, A=[4,2,3], B=[3,1,0,0,4,0,5] এবং দেওয়া বাইনারি ম্যাট্রিক্স অনুযায়ী আউটপুট ম্যাট্রিক্স বানাতে হবে।
সমাধানের ধাপসমূহ
N = len(A),M = len(B)।- প্রতিটি সেল
(i, j)এর জন্য:- যদি
mat[i][j] == 1হয়, প্রিন্ট করুনmin(A[i], B[j])। - অন্যথায় প্রিন্ট করুন
0।
- যদি
পাইথন কোড উদাহরণ
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)
# আউটপুট:
# 3 0 0 0 4 0 4
# 0 0 0 0 0 0 2
# 3 1 0 0 3 0 0
ইনপুট
[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]]
আউটপুট
3 0 0 0 4 0 4
0 0 0 0 0 0 2
3 1 0 0 3 0 0