ধরুন সেখানে 3*n সংখ্যক কয়েনের স্তূপ বিদ্যমান, এবং সেগুলি বিভিন্ন আকারের, তিনজন খেলোয়াড় একটি খেলা খেলছেন যেমন −
-
প্রতিটি ধাপে, প্লেয়ার1 যেকোন 3টি কয়েন নির্বাচন করবে।
-
তার পছন্দের, Player2 সর্বোচ্চ সংখ্যক কয়েন সহ গাদা বাছাই করবে।
-
প্লেয়ার1 সর্বোচ্চ সংখ্যক কয়েন সহ পরবর্তী গাদা বাছাই করবে।
-
Player3 শেষ গাদা বাছাই করবে।
-
কয়েনের আর স্তূপ না হওয়া পর্যন্ত এই পদক্ষেপগুলি পুনরাবৃত্তি করুন৷
৷
এখন যদি আমাদের কাছে পাইল নামক পূর্ণসংখ্যার একটি অ্যারে থাকে যেখানে পাইলস [i] হল ith পাইলের কয়েনের সংখ্যা, তাহলে আমাদের প্লেয়ার1-এর সর্বোচ্চ কতগুলি কয়েন থাকতে পারে তা খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি পাইলস =[2,4,1,2,7,8] এর মত হয়, তাহলে আউটপুট 9 হবে কারণ প্রথমে আমরা একটি ট্রিপলেট (2,7,8) নির্বাচন করতে পারি, তারপর প্লেয়ার2 8 নির্বাচন করে, Player1 7টি নির্বাচন করে এবং 2টি Player3 এর জন্য। তারপর আবার ট্রিপলেট (1,2,4) নির্বাচন করুন, তারপর Player2 কয়েন 4 সহ গাদা নির্বাচন করে, তারপর Player1 Player3 এর জন্য 2টি এবং অবশিষ্ট 1 নির্বাচন করে। বর্তমানে Player1-এ 7+2 =9 কয়েন রয়েছে, এটি সর্বাধিক৷
৷এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
তালিকার পাইলস সাজান
-
উত্তর :=0
-
পাইলসের আকার 0 এর মতো না হলে, করুন
-
ans :=ans + পাইলস থেকে দ্বিতীয় শেষ উপাদান
-
পাইলস থেকে দ্বিতীয় শেষ উপাদান মুছুন
-
পাইলস থেকে শেষ উপাদান মুছুন
-
পাইলস থেকে প্রথম উপাদান মুছুন
-
-
উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(piles): piles.sort() ans = 0 while(len(piles)!=0): ans = ans + piles[-2] del piles[-2] del piles[-1] del piles[0] return ans piles = [2,4,1,2,7,8] print(solve(piles))
ইনপুট
[2,4,1,2,7,8]
আউটপুট
9