কম্পিউটার

শত্রুকে হত্যা করার জন্য অস্ত্রের সাথে ন্যূনতম চাল খুঁজে পেতে C++ কোড


ধরুন আমাদের কাছে n উপাদান সহ একটি অ্যারে রয়েছে এবং আরেকটি সংখ্যা H. H হল একজন শত্রুর স্বাস্থ্য৷ আমাদের কাছে n অস্ত্র রয়েছে এবং ith অস্ত্রের ক্ষতিকর শক্তি হল A[i]৷ শত্রুকে হত্যা করতে বিভিন্ন অস্ত্র ব্যবহার করা যেতে পারে। আমরা একই অস্ত্র পরপর দুবার ব্যবহার করতে পারি না। শত্রুকে হত্যা করতে আমরা ন্যূনতম কতবার অস্ত্র ব্যবহার করতে পারি তা আমাদের গণনা করতে হবে।

সুতরাং, যদি ইনপুটটি A =[2, 1, 7] এর মত হয়; H =11, তাহলে আউটপুট হবে 3, কারণ আমরা যদি ক্ষতির শক্তি 7 সহ অস্ত্র ব্যবহার করি, তারপর 2 ব্যবহার করি, তারপর আবার 7 ব্যবহার করি আমরা শত্রুকে হত্যা করতে পারি।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

sort the array A
n := size of A
x := (A[n - 1] + A[n - 2])
return H / x * 2 + (H mod 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++ এ বাইনারি সার্চ ট্রিতে ন্যূনতম মান সহ নোড খুঁজুন