ধরুন আমাদের তিনটি সংখ্যা আছে 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