কম্পিউটার টিউটোরিয়াল

C++ কোড: ফ্লোর আলোকিত করার জন্য ন্যূনতম ল্যাম্পের সংখ্যা

একটি ফ্লোর n সারি এবং m কলামের গ্রিডে ভাগ করা আছে। ল্যাম্প দিয়ে পুরো ফ্লোর আলোকিত করতে হবে। ল্যাম্প যদি দুটি সেলের বর্ডারে রাখা হয়, তবে এটি দুটি সেল আলোকিত করে। ভertetrical বর্ডারে থাকলে বাম ও ডান পাশের সেল দুটি, horizontal বর্ডারে থাকলে সামনে ও পেছনের সেল দুটি আলোকিত হয়। পুরো ফ্লোর আলোকিত করার জন্য ন্যূনতম কতটি ল্যাম্প লাগবে তা বের করতে হবে।

সমাধানের ধাপসমূহ

প্রতিটি ল্যাম্প ২টি সেল আলোকিত করে। মোট সেলের সংখ্যা n×m। অতএব ন্যূনতম ল্যাম্পের সংখ্যা হবে (n×m + 1) / 2 (সিলিং ভ্যালু)।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

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

ব্যাখ্যা

5×3 = ১৫টি সেল। (১৫+১)/২ = ৮টি ল্যাম্প দরকার।

  1. C++-এ Find the Celebrity: সেলিব্রিটি খুঁজে বের করা (কমপ্লেক্সিটি অপ্টিমাইজড)

  2. C++-এ ডিফারেন্স খুঁজুন (Find the Difference)

  3. C++-এ শর্টেস্ট সুপারস্ট্রিং খুঁজে বের করা

  4. সি++-এ নিকটতম প্যালিনড্রোম বের করা