কম্পিউটার

k অতিক্রম না করে কপি অপারেশন গণনা করতে C++ কোড


ধরুন আমাদের একটি অ্যারে আছে n উপাদান সহ এবং আরেকটি সংখ্যা k। ক্যান্ডির n গাদা আছে। ith পাইলে A[i] সংখ্যক ক্যান্ডি আছে। আমরা দুটি সূচক এবং j (i !=j) এর উপর অপারেশন করতে পারি, তারপর A[i] তে আরেকটি A[i] সংখ্যক ক্যান্ডি যোগ করতে পারি (A[i] কমানো হবে না)। আমরা যেকোন সংখ্যক বার এই অপারেশনটি করতে পারি, কিন্তু দুর্ভাগ্যবশত যদি কিছু স্তূপে k ক্যান্ডির চেয়ে বেশি কঠোরভাবে থাকে তবে আমরা আর অপারেশন করতে পারি না। আমরা এই অপারেশনটি কতবার করতে পারি তা আমাদের খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুটটি A =[1, 2, 3] এর মত হয়; k =5, তাহলে আউটপুট 5 হবে, কারণ আমরা i =0 নিতে পারি এবং j =1 এর জন্য আমরা তিনবার পারফর্ম করতে পারি এবং j =2 এর জন্য আমরা দুইবার পারফর্ম করতে পারি। তাই মোট ৫ বার।

পদক্ষেপ

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

ans := 0
n := size of A
sort the array A
for initialize i := 1, when i < n, update (increase i by 1), do:
   ans := ans + (k - A[i])
return ans

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int k){
   int ans = 0;
   int n = A.size();
   sort(A.begin(), A.end());
   for (int i = 1; i < n; i++){
      ans += (k - A[i]) / A[0];
   }
   return ans;
}
int main(){
   vector<int> A = { 1, 2, 3 };
   int k = 5;
   cout << solve(A, k) << endl;
}

ইনপুট

{ 1, 2, 3 }, 5

আউটপুট

5

  1. সংখ্যা c এবং d করতে ন্যূনতম অপারেশন খুঁজে পেতে C++ কোড

  2. C++ প্রোগ্রাম ন্যূনতম সংখ্যক ক্রিয়াকলাপ গণনা করে যা সংখ্যা n থেকে 1 করতে হবে

  3. C++ তে 3 বা 7 এর একাধিক

  4. C++ এ একটি বাইনারি স্ট্রিং "ab" বিনামূল্যে করার জন্য অপারেশনের সংখ্যা