আমাদের N টাকা আছে। পানির বোতলের রেট: প্লাস্টিক বোতল - A টাকা প্রতি লিটার, গ্লাস বোতল - B টাকা প্রতি লিটার। গ্লাস বোতল রিটার্ন করলে E টাকা ফেরত পাওয়া যায়। তাই গ্লাস বোতলের প্রভাবে খরচ = B - E টাকা।
যদি প্লাস্টিক বোতলের দাম (A) এখনও B-E-র চেয়ে কম হয়, তবে শুধু প্লাস্টিক কেনা। অন্যথায় প্রথমে (N-E)/(B-E) গ্লাস বোতল কিনে বাকি টাকায় প্লাস্টিক কিনা।
ইনপুট
N = 6, A = 5, B = 4, E = 3
আউটপুট
Maximum litres of water: 3
ব্যাখ্যা: B-E=1 < A। N-E=3, ৩ টাকায় ৩ লিটার গ্লাস বোতল কিনা যায়।
ইনপুট
N = 10, A = 5, B = 10, E = 3
আউটপুট
Maximum litres of water: 2
ব্যাখ্যা: B-E=7 > A। ১০/৫ = ২ লিটার প্লাস্টিক বোতল।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- money, pbottle, gbottle, gempty ভেরিয়েবল।
- maxWater(int mny, int pb, int gb, int ge) ফাংশন।
- gb = gbottle - gempty (নতুন গ্লাস বোতল দাম)।
- যদি gb < pb হয়: tmp = (mny - ge) / gb; litrs = max(tmp, 0); mny -= litrs*gb; litrs += mny/pb।
- অন্যথায় শুধু প্লাস্টিক: mny/pb।
- ফলাফল প্রিন্ট।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void maxWater(int mny, int pb, int gb, int ge){
int litrs;
if (gb < pb){
int tmp = (mny - ge) / gb;
litrs = tmp > 0 ? tmp : 0;
mny -= litrs * gb;
litrs += mny / pb;
cout << "Maximum Liters of water : " << litrs << endl;
}
else
cout << "Maximum Liters of water only Plastic bottles: " << (mny / pb) << endl;
}
int main(){
int money = 20, pbottle = 5, gbottle = 10, gempty = 8;
gbottle = gbottle - gempty;
maxWater(money, pbottle, gbottle, gempty);
return 0;
}
আউটপুট
Maximum Liters of water: 14