দুটি লকার L1 এবং L2 আছে যেগুলোতে যথাক্রমে A এবং B সংখ্যক কয়েন রয়েছে। দু ধাপে কয়েন উত্তোলন করে সর্বোচ্চ টাকা বের করতে হবে। প্রতিবার কোনো লকার থেকে কয়েন নিলে সেটা এক কমে যায় (A-1 বা B-1)।
উদাহরণ
ইনপুট: L1 = 10, L2 = 11
আউটপুট: দু ধাপে সর্বোচ্চ টাকা - 21
ব্যাখ্যা: ধাপ ১: L2 থেকে ১১ কয়েন নিলে L2 = ১০। ধাপ ২: L1 বা L2 যেকোনো থেকে ১০ কয়েন। মোট = ১১ + ১০ = ২১।
ইনপুট: L1 = 5, L2 = 5
আউটপুট: ১০
ব্যাখ্যা: ধাপ ১: L1 থেকে ৫ (L1 = ৪)। ধাপ ২: L2 থেকে ৫। মোট = ৫ + ৫ = ১০।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- দুটি লকার A এবং B ইনপুট হিসেবে নেওয়া হয়।
- maxMoney(int A, int B) ফাংশনটি সর্বোচ্চ কয়েন রিটার্ন করে।
- money = max(A, B) দিয়ে প্রথম উত্তোলন।
- যদি A থেকে নেওয়া হয় তবে A--, না হলে B--।
- আরেকবার money += max(A, B) দিয়ে দ্বিতীয় উত্তোলন।
- money রিটার্ন করা হয়।
C প্রোগ্রাম উদাহরণ
#include <stdio.h>
#include <math.h>
int maxMoney(int A, int B) {
int money = A > B ? A : B;
if (money == A) A--; else B--;
money += A > B ? A : B;
return money;
}
int main() {
int L1 = 8, L2 = 9;
printf("দু ধাপে সর্বোচ্চ টাকা: %d", maxMoney(L1, L2));
return 0;
}
আউটপুট
দু ধাপে সর্বোচ্চ টাকা: 17