ধরুন আমাদের তিনটি সংখ্যা আছে n, a এবং b। আমরা n লিটার পানি কিনতে চাই। কাছাকাছি মাত্র দুই ধরনের পানির বোতল আছে, 1-লিটারের বোতল এবং 2-লিটারের বোতল। প্রথম ধরনের বোতলের দাম a টাকা এবং দ্বিতীয় ধরনের বোতলের দাম b টাকা। আমরা যতটা সম্ভব কম টাকা খরচ করতে চাই। ঠিক n লিটার পানি কিনতে আমাদের ন্যূনতম পরিমাণ অর্থ খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুট n =7 এর মত হয়; a =3; b =2, তাহলে আউটপুট হবে 9, কারণ 3 2-লিটার বোতল দিয়ে আমরা 6 লিটার জল পেতে পারি যার দাম 6, তারপর 3 খরচের জন্য একটি 1 লিটার বোতল প্রয়োজন৷
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
b := minimum of a * 2 and b return (n / 2 * b) + (n mod 2) * a
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(int n, int a, int b) { b = min(a * 2, b); return n / 2 * b + n % 2 * a; } int main() { int n = 7; int a = 3; int b = 2; cout << solve(n, a, b) << endl; }
ইনপুট
7, 3, 2
আউটপুট
9