मान लीजिए हमारे पास दो मान n और m हैं। हमें 2x1 आकार के आयतों की संख्या ढूंढनी है जिन्हें n x m आकार के आयत के अंदर रखा जा सकता है। कुछ शर्तें हैं जिन पर विचार करना है:
- कोई भी दो छोटे आयत ओवरलैप नहीं हो सकते।
- प्रत्येक छोटा आयत बड़े आयत के अंदर पूरी तरह से स्थित होना चाहिए। बड़े आयत के किनारों को छूने की अनुमति है।
इसलिए, यदि इनपुट n = 3, m = 3 है, तो आउटपुट 4 होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- यदि
n % 2 == 0, तो(n / 2) * mलौटाएं। - अन्यथा यदि
m % 2 == 0, तो(m / 2) * nलौटाएं। (n * m - 1) / 2लौटाएं।
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def count_rect(n, m):
if n % 2 == 0:
return (n // 2) * m
elif m % 2 == 0:
return (m // 2) * n
return (n * m - 1) // 2
n = 3
m = 3
print(count_rect(n, m))
इनपुट
3, 3
आउटपुट
4