ধরুন আমাদের কাছে N ধনাত্মক সংখ্যার একটি তালিকা রয়েছে। এখন আমরা তালিকা থেকে যেকোনো একক মান নির্বাচন করতে পারি এবং এটিকে যেকোনো অবস্থানে নিয়ে যেতে পারি (অদলবদল নয়)। আমরা কোনো অবস্থানে সরাতে পারি না। তাই আমাদের খুঁজে বের করতে হবে তালিকার সর্বোচ্চ সম্ভাব্য চূড়ান্ত শক্তি কী? যেমনটি আমরা জানি একটি তালিকার শক্তি হল সমস্ত সূচকের সমষ্টি (সূচক + 1) * value_at_index i.
$$\displaystyle\sum\limits_{i=0}^{n-1} (i+1)\time list[i]$$
সুতরাং, ইনপুট যদি nums =[6, 2, 3] এর মত হয়, তাহলে আউটপুট হবে 26, যেহেতু আমরা তালিকা পেতে 6 কে শেষ পর্যন্ত নিয়ে যেতে পারি [2, 3, 6] তাই পাওয়ার হল:(2) * 1) + (3 * 2) + (6 * 3) =26.
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
P :=মান 0
সহ একটি তালিকা -
ভিত্তি :=0
-
প্রতিটি সূচক i এবং A এর মান x এর জন্য করুন
-
P
এর শেষে P + x এর শেষ উপাদান সন্নিবেশ করান -
base :=base + (i+1) * x
-
-
উত্তর :=ভিত্তি
-
প্রতিটি সূচকের জন্য i এবং মান x এ A, করুন
-
0 থেকে A + 1 এর আকারের মধ্যে j এর জন্য, করুন
-
উত্তর :=সর্বাধিক উত্তর এবং (বেস + P[i] - P[j] -(i - j) * x)
-
-
-
উত্তর ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
class Solution: def solve(self, A): P = [0] base = 0 for i, x in enumerate(A, 1): P.append(P[-1] + x) base += i * x ans = base for i, x in enumerate(A): for j in range(len(A) + 1): ans = max(ans, base + P[i] - P[j] - (i - j) * x) return ans ob = Solution() nums = [6, 2, 3] print(ob.solve(nums))
ইনপুট
[6, 2, 3]
আউটপুট
26