ধরুন আমাদের তিনটি মান আছে a, b এবং c। আমরা তিনটি গাদা পাথরের সাথে একটি সলিটায়ার গেম খেলছি যার আকার যথাক্রমে a, b এবং c। প্রতিটি পালা খেলোয়াড় দুটি ভিন্ন খালি স্তূপ নির্বাচন করে, প্রতিটি থেকে একটি করে পাথর নিন এবং তার স্কোরে 1 পয়েন্ট যোগ করুন। দুটিরও কম খালি পাইল না থাকলে খেলাটি শেষ হয়। তাই আপনি যে সর্বোচ্চ স্কোর পেতে পারেন তা আমাদের খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি হয় a =4, b =4, c =6, তাহলে আউটপুট হবে 7 কারণ প্রাথমিক অবস্থা (4, 4, 6), তাহলে আমরা এই ধাপগুলি অনুসরণ করতে পারি −
-
১ম এবং ২য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (৩, ৩, ৬)
-
১ম এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (2, 3, 5)
-
১ম এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (1, 3, 4)
-
১ম এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (0, 3, 3)
-
২য় এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (0, 2, 2)
-
২য় এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (0, 1, 1)
-
২য় এবং ৩য় পাইল থেকে নির্বাচন করুন যাতে বর্তমান অবস্থা হয় (0, 0, 0)
এবং অবশেষে দুটিরও কম অ-খালি গাদা আছে, তাই গেমটি শেষ হয়৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সর্বনিম্ন :=সর্বনিম্ন a, b এবং c
-
সর্বোচ্চ :=a, b এবং c
এর সর্বোচ্চ -
বাম :=a + b + c - সর্বোচ্চ - সর্বনিম্ন
-
যদি সর্বাধিক-বাম <=সর্বনিম্ন, তারপর
-
সর্বনিম্ন + বাম - ভাগফল (1 + সর্বনিম্ন - (সর্বোচ্চ-বাম))/2
-
-
সর্বনিম্ন + (সর্বনিম্ন (সর্বাধিক-সর্বনিম্ন) এবং বাম)
ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def সমাধান(a, b, c):সর্বনিম্ন =min(a,b,c) সর্বোচ্চ =সর্বোচ্চ(a,b,c) left =a+b+c-সর্বোচ্চ-সর্বাধিক-বাম হলে সর্বনিম্ন<=সর্বনিম্ন:সর্বনিম্ন রিটার্ন + বাম-(1+সর্বাধিক-(সর্বোচ্চ-বাম))//2 সর্বনিম্ন রিটার্ন + মিনিমাম (সর্বাধিক-সর্বাধিক, বাম)a =4b =4c =6প্রিন্ট(সল্ভ(a, b, c))প্রে>ইনপুট
4, 4, 6আউটপুট
7