ধরুন আমাদের কাছে আয়তক্ষেত্রগুলির একটি তালিকা রয়েছে যা এর দৈর্ঘ্য এবং প্রস্থ ব্যবহার করে উপস্থাপন করা হয়েছে। আমরা যেকোন আয়তক্ষেত্রকে 90 ডিগ্রি ঘোরাতে পারি তাই ঘোরার পরে, প্রস্থ দৈর্ঘ্যে পরিণত হবে এবং এর বিপরীতে। আমরা আয়তক্ষেত্রগুলিকে প্রস্থের অ-ক্রমবর্ধমান ক্রমে সাজাতে পারি কিনা তা পরীক্ষা করতে হবে৷
সুতরাং, যদি ইনপুটটি rects =[[4, 5], [5, 7], [4, 6]] এর মত হয়, তাহলে আউটপুটটি True হবে যেহেতু এখন আমরা ঘুরলে প্রস্থগুলি [5,7,6]। শেষ দুটি আয়তক্ষেত্র তারপর প্রস্থ হবে [5,5,4] যা অ-বাড়ন্ত উপায়ে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- m :=99999
- আমি রেঞ্জ 0 থেকে রেক্টের আকারের জন্য, কর
- যদি ith আয়তক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য ও প্রস্থ <=m হয়, তাহলে
- m :=ith আয়তক্ষেত্রের সর্বাধিক দৈর্ঘ্য এবং প্রস্থ
- অন্যথায় যখন ith আয়তক্ষেত্রের ন্যূনতম দৈর্ঘ্য ও প্রস্থ <=m
- m :=ith আয়তক্ষেত্রের ন্যূনতম দৈর্ঘ্য এবং প্রস্থ
- অন্যথায়,
- মিথ্যে ফেরত দিন
- যদি ith আয়তক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য ও প্রস্থ <=m হয়, তাহলে
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(rect): m = 99999 for i in range(len(rect)): if max(rect[i][0], rect[i][1]) <= m: m = max(rect[i][0], rect[i][1]) elif min(rect[i][0], rect[i][1]) <= m: m = min(rect[i][0], rect[i][1]) else: return False return True rects = [[4, 5], [5, 7], [4, 6]] print(solve(rects))
ইনপুট
[[4, 5], [5, 7], [4, 6]]
আউটপুট
True