ধরুন, 0s দিয়ে একটি n x n ম্যাট্রিক্স শুরু হয়েছে। এখন, একটি তালিকা দেওয়া হয়েছে এবং এতে কিছু জোড়া রয়েছে যা একটি নির্দিষ্ট সারি এবং একটি কলাম অবস্থান ধারণ করে। তালিকার প্রতিটি আইটেমের জন্য, কক্ষের বিষয়বস্তু 1 দ্বারা বৃদ্ধি পায় যেখানে সারি সংখ্যা এবং কলাম সংখ্যা তালিকার আইটেম i এর সারি মান এবং কলামের মানের থেকে কম। সমস্ত তালিকার উপাদানগুলি অতিক্রম করার পরে, আমাদের ম্যাট্রিক্সে সর্বাধিক মান রয়েছে এমন কক্ষের সংখ্যা খুঁজে বের করতে হবে। (সারি এবং কলাম সূচক 0 এ শুরু হয়)
সুতরাং, যদি ইনপুটটি হয় input_list =[[3, 5], [4, 6], [5, 3]], তাহলে আউটপুট হবে 9। ধরুন, এটি একটি 5 x 6 ম্যাট্রিক্স। প্রথমে ম্যাট্রিক্সের মানগুলি হল
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
তালিকার প্রথম উপাদানটি অতিক্রম করার পর, এটি −
হয়ে যায়1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
তালিকার দ্বিতীয় উপাদানটি অতিক্রম করার পর, এটি −
হয়ে যায়2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 1 1 1 1 1 1 0 0 0 0 0 0
তালিকার তৃতীয় উপাদানটি অতিক্রম করার পর, এটি −
হয়ে যায়3 3 3 2 2 1 3 3 3 2 2 1 3 3 3 2 2 1 2 2 2 1 1 1 1 1 1 0 0 0
ম্যাট্রিক্সের সর্বোচ্চ মান হল 3, এবং 9টি কক্ষ রয়েছে যাতে মানটি থাকে৷
৷এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব
- xpos :=0
- ypos :=0
- ইনপুট_লিস্টের প্রতিটি আইটেমের জন্য, করুন
- যদি xpos 0 এর মত হয়, তাহলে
- xpos :=আইটেম[0]
- ypos :=আইটেম[1]
- অন্যথায়,
- xpos :=সর্বনিম্ন (xpos, item[0])
- ypos :=সর্বনিম্ন (ypos, item[1])
- যদি xpos 0 এর মত হয়, তাহলে
- রিটার্ন(xpos * ypos)
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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]]))
ইনপুট
[[3, 5], [4, 6], [5, 3]]
আউটপুট
9