কম্পিউটার টিউটোরিয়াল

C++ কোড: সব টাস্ক সম্পন্ন করতে ন্যূনতম সময় বের করা


মান লক্ষ্য করুন একটি n এলিমেন্টের অ্যারে A, এবং দুটি অন্যান্য অ্যারে k এবং x। i-তম টাস্ক সম্পন্ন করতে A[i] সময় লাগে। দেওয়া A নন-ডিক্রিজিং অর্ডারে সর্টেড। আমল সর্বোচ্চ k টি টাস্ক নিবে এবং সেগুলো প্রতিটায় x ইউনিট সময়ে করবে A[i]-র পরিবর্তে। (x < সব A[i]-র মিনিমাম)। আমাদের আমলের টাস্ক সম্পন্ন করতে ন্যূনতম সময় বের করতে হবে। আমল একবারে একাধিক টাস্ক করতে পারবে না।

তাই, যদি ইনপুট হয় A = [3, 6, 7, 10]; k = 2; x = 2, তবে আউটপুট হবে ১৩, কারণ সেরা অপশন হবে তৃতীয় এবং চতুর্থ টাস্ক করা, প্রতিটায় x = 2 সময় খরচ করে A[2] এবং A[3]-র পরিবর্তে। তাহলে উত্তর 3 + 6 + 2 + 2 = ১৩।

ধাপসমূহ

এটি সমাধান করার জন্য, আমরা এই ধাপগুলো অনুসরণ করব −

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

  1. C++-এ ট্রিতে সব আপেল কালেক্ট করতে ন্যূনতম সময়

  2. C++-এ সকল কর্মীকে জানাতে প্রয়োজনীয় সময় গণনা

  3. সব বই কেনার ন্যূনতম খরচ বের করা C++-তে

  4. পাইথনে সব টাস্ক সমাপ্তির ন্যূনতম সময় নির্ণয়