কম্পিউটার

সি++ প্রোগ্রাম ন্যূনতম সম্ভাব্য কদর্যতা খুঁজে বের করতে যা আমরা টাওয়ারের অর্জন করতে পারি


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। একটি সারিতে n ব্লক টাওয়ার আছে বিবেচনা করুন. ith টাওয়ারের উচ্চতা A[i] আছে। এক দিনে, আমরা অপারেশনটি সম্পাদন করতে পারি:দুটি সূচক i এবং j (i !=j) নির্বাচন করুন এবং টাওয়ার i থেকে j এ ফিরে যান। এটি A[i] 1 দ্বারা কমবে এবং A[j] 1 দ্বারা বৃদ্ধি পাবে। ভবনগুলির কদর্যতা সর্বাধিক(A) − মিন(A)। আমাদের ন্যূনতম সম্ভাব্য কুশ্রীতা খুঁজে বের করতে হবে যা আমরা অর্জন করতে পারি।

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

পদক্ষেপ

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

sum := 0
x := 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   sum := sum + A[i]
if sum mod n is same as 0, then:
   return 0
return 1
ফেরত দিন

উদাহরণ

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

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

int solve(vector<int> A) {
   int sum = 0, x = 0;
   int n = A.size();
   for (int i = 0; i < n; i++)
      sum += A[i];
   if (sum % n == 0)
      return 0;
   return 1;
}
int main() {
   vector<int> A = { 1, 2, 3, 1, 5 };
   cout << solve(A) << endl;
}

ইনপুট

{ 1, 2, 3, 1, 5 }

আউটপুট

1

  1. C++ এ প্রতিটি কার্টেসিয়ান স্থানাঙ্ক সংযোগ করার জন্য সর্বনিম্ন খরচ খুঁজে বের করার জন্য প্রোগ্রাম

  2. C++ এ ন্যূনতম যোগফল আছে এমন ট্রি লেভেল খুঁজে বের করার প্রোগ্রাম

  3. LCM খুঁজে পেতে C++ প্রোগ্রাম

  4. GCD খুঁজে পেতে C++ প্রোগ্রাম