โจทย์: มีภารกิจ n อย่าง ใช้เวลา A[i] (เรียงไม่ลด) Amal ทำได้สูงสุด k ภารกิจ ใช้เวลา x ต่อภารกิจ (x < min(A)) หาเวลารวมน้อยที่สุด
Input: A=[3,6,7,10], k=2, x=2 → Output: 13 (ทำภารกิจที่ 3,4 ใช้เวลา 2+2 แทน 7+10)
ขั้นตอนแก้
x := k * x
for i := 0 to n-k-1:
x += A[i]
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++) {
x += A[i];
}
return x;
}
int main() {
vector<int> A = {3,6,7,10};
int k = 2, x = 2;
cout << solve(A,k,x) << endl;
}Input
{3,6,7,10}, 2, 2Output
13