মান লিজিয়ে আমাদের একটি m x n গ্রিড বক্স দেওয়া আছে, যেখানে প্রতিটি সেলে একটি বোর্ড আছে যা হয় টপ-রাইট থেকে বটম-লেফ্টে বা টপ-লেফ্ট থেকে বটম-রাইটে পজিশন করা। উপরের সেলগুলো থেকে একটি বল বক্সের ভিতরে ডाला হয় এবং আমাদের চেক করতে হবে বলটি বক্সের নিচে পৌঁছায় কিনা। গ্রিডটি ম্যাট্রিক্স আকারে দেওয়া আছে। যদি সেলটি 1 হয় তবে ডায়াগোনাল বোর্ড টপ-লেফ্ট থেকে বটম-রাইটে; যদি -1 হয় তবে টপ-রাইট থেকে বটম-লেফ্টে। n বল ডালা হলে, কতগুলো বল নিচে পৌঁছেছে সেটি বের করতে হবে।

৩x৩ গ্রিড বক্সের উদাহরণ।
যেমন, ইনপুট হলে mat = [[1,1,1,-1],[-1,1,1,-1],[1,-1,-1,1],[1,-1,1,-1]], তবে আউটপুট হবে [-1, -1, -1, -1]।
সমাধানের ধাপসমূহ
i := mat-এর রো সংখ্যাj := mat[0]-এর কলাম সংখ্যাres := নতুন লিস্টval = 0থেকেj-1পর্যন্ত:x := valr = 0থেকেi-1পর্যন্ত:s := mat[r][x]x := x + mat[r][x]যদি
x < 0 or x >= j or mat[r][x] != sহয়, তবে:res.append(-1)লুপ থেকে বের হয়ে যান।
অন্যথায়,
res.append(x)
resরিটার্ন করুন।
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
def solve(mat):
i, j = len(mat), len(mat[0])
res = []
for val in range(j):
x = val
for r in range(i):
s = mat[r][x]
x += mat[r][x]
if x < 0 or x >= j or mat[r][x] != s:
res.append(-1)
break
else:
res.append(x)
return res
print(solve([[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1], [1, -1, 1, -1]]))ইনপুট
[[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1],[1, -1, 1, -1] ]
আউটপুট
[-1, -1, -1, -1]