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

সি++ কোড: হथিয়ার দিয়ে শত্রু হত্যা করতে ন্যূনতম মুভ গণনা করুন

একটি অ্যারে A (n উপাদান) এবং একটি সংখ্যা H দেওয়া আছে। H = শত্রুর হেলথ। nটি হথিয়ার আছে, i-তম হথিয়ারের ড্যামেজ A[i]। ভিন্ন হথিয়ার দিয়ে শত্রু হত্যা করতে হবে। একই হথিয়ার দুবার পরপর ব্যবহার করা যাবে না। শত্রু হত্যা করতে ন্যূনতম কতবার হথিয়ার ব্যবহার করতে হবে তা বের করতে হবে।

উদাহরণ

A=[2,1,7], H=11 → আউটপুট: 3
ব্যাখ্যা: ৭ ড্যামেজ, তারপর ২, আবার ৭ — মোট ৩ বার।

সমাধানের ধাপসমূহ

sort(A)
n := A.size()
x := A[n-1] + A[n-2]
return H/x * 2 + (H%x + A[n-1] - 1) / A[n-1]

সি++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A, int H) {
    sort(A.begin(), A.end());
    int n = A.size();
    int x = A[n-1] + A[n-2];
    return H/x * 2 + (H%x + A[n-1] - 1) / A[n-1];
}

int main() {
    vector<int> A = {2, 1, 7};
    int H = 11;
    cout << solve(A, H) << endl;
}

ইনপুট

{ 2, 1, 7 }, 11

আউটপুট

3
  1. C++-এ নাইটের ন্যূনতম মুভ গণনা করুন

  2. অনন্ত নাম্বার লাইনে লক্ষ্যে যেতে ন্যূনতম মুভের সংখ্যা বের করা C++-তে

  3. দেওয়া কোঅর্ডিনেট সেট থেকে ন্যূনতম আয়তক্ষেত্রের ক্ষেত্রফল বের করা C++-তে

  4. C++-এ বাইনারি সার্চ ট্রি (BST)-এ সর্বনিম্ন মান্যুক্ত নোড (Node) খুঁজে বের করা