मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और दो अन्य सरणियाँ k और x हैं। ith कार्य को पूरा होने में A[i] समय लगता है। दिए गए A को गैर-घटते तरीके से क्रमबद्ध किया गया है। अमल अधिकांश k कार्य लेता है और उनमें से प्रत्येक को A [i] के बजाय x इकाइयों में समय में करता है। (x <सभी का न्यूनतम ए [i])। हमें अमल के कार्य को पूरा करने के लिए आवश्यक न्यूनतम समय निकालना होगा। अमल एक साथ एक से अधिक कार्य नहीं कर सकता।
तो, अगर इनपुट ए =[3, 6, 7, 10] जैसा है; कश्मीर =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