मान लीजिए कि हमारे पास 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