ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে, এবং আরও দুটি অ্যারে k এবং x আছে। ith টাস্কটি সম্পূর্ণ হতে A[i] সময় লাগে। প্রদত্ত A অ-হ্রাসশীল ফ্যাশনে সাজানো হয়েছে। অমল সর্বাধিক k কাজ নেয় এবং A[i] এর পরিবর্তে সেগুলির প্রতিটিকে সময়ের x এককে করে। (x <সর্বনিম্ন A[i])। আমালের কাজটি সম্পূর্ণ করার জন্য আমাদের ন্যূনতম সময় বের করতে হবে। অমল এক সাথে একাধিক কাজ করতে পারে না।
সুতরাং, যদি ইনপুটটি A =[3, 6, 7, 10] এর মত হয়; k =2; x =2, তাহলে আউটপুট 13 হবে, কারণ সেরা বিকল্পটি হবে তৃতীয় এবং চতুর্থ কাজগুলি করা, প্রতিটিতে A[2] এবং A[3] এর পরিবর্তে x =2 সময় ব্যয় করা। তারপর উত্তর হবে 3 + 6 + 2 + 2 =13।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
x := k * x n := size of A for initialize i := 0, when i < n - k, update (increase i by 1), do: t := A[i] x := x + t return x
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A, int k, int x){ x = k * x; int n = A.size(); for (int i = 0; i < n - k; i++){ int t = A[i]; x += t; } return x; } int main(){ vector<int> A = { 3, 6, 7, 10 }; int k = 2; int x = 2; cout << solve(A, k, x) << endl; }
ইনপুট
{ 3, 6, 7, 10 }, 2, 2
আউটপুট
13