ধরুন, একটি ফ্লোরকে একটি গ্রিডে বিভক্ত করা হয়েছে যেখানে 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