मान लीजिए, एक फर्श को ग्रिड में विभाजित किया गया है जिसमें n पंक्तियाँ और m स्तंभ हैं। अब फर्श को दीयों से जलाना है। एक दीपक, यदि दो कक्षों की सीमा पर रखा जाए, तो दो कक्षों को प्रकाशमान कर सकता है। यदि लैम्प को वर्टिकल बॉर्डर में रखा जाता है, तो यह अपने बाएँ और दाएँ सेल्स को रोशन करता है और यदि इसे हॉरिज़ॉन्टल बॉर्डर में रखा जाता है, तो यह इसके आगे और पीछे के सेल को रोशन करता है। n और m को देखते हुए, हमें पूरी मंजिल को रोशन करने के लिए आवश्यक न्यूनतम संख्या में लैंप का पता लगाना होगा।
इसलिए, यदि इनपुट n =5, m =3 जैसा है, तो आउटपुट 8 होगा।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
res := (n * m + 1) / 2 return res
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int n, int m) { int res = (n * m + 1) / 2; return res; } int main() { int n = 5, m = 3; cout<< solve(n, m); return 0; }
इनपुट
5, 3
आउटपुट
8