কম্পিউটার

C++ এ সর্বোচ্চ ওজনের পার্থক্য


এই সমস্যায়, আমাদেরকে একটি অ্যারে arr[] এবং একটি সংখ্যা M দেওয়া হয়। আমাদের কাজ হল C++ এ সর্বাধিক ওজনের পার্থক্য গণনা করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বিবৃতি

আমরা অ্যারে থেকে M উপাদানগুলি খুঁজে পাব যাতে যোগফল এবং বাকি উপাদানগুলির যোগফলের মধ্যে পরম পার্থক্য সর্বাধিক।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট :arr[] ={3, 1, 6, 9, 4} M =3

আউটপুট :15

ব্যাখ্যা

আমরা 4,6,9 বিবেচনা করব। যোগফল হল 19। বাকি সংখ্যার যোগফলের সাথে পরম পার্থক্য হল

|19 - 4| =15

সমাধান পদ্ধতি

সমস্যার সমাধান এই সত্যের উপর ভিত্তি করে যে সর্বাধিক পার্থক্য শুধুমাত্র M বৃহত্তম সংখ্যা বা M ক্ষুদ্রতম সংখ্যার ক্ষেত্রে সম্ভব। এবং আমাদের উভয় শর্ত পরীক্ষা করতে হবে এবং চূড়ান্ত ফলাফল খুঁজে পেতে পরম পার্থক্য তুলনা করতে হবে। M বৃহত্তম/ছোট সংখ্যা খুঁজে বের করার প্রক্রিয়া সহজ করার জন্য, আমরা অ্যারে সাজাব এবং তারপর K বৃহত্তম এবং ক্ষুদ্রতম সংখ্যার গণনা করব।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int maxWeightDifference(int arr[], int N, int M){
   int maxabsDiff = -1000;
   sort(arr, arr + N);
   int sumMin = 0, sumMax = 0, arrSum = 0;
   for(int i = 0; i < N; i++){
      arrSum += arr[i];
      if(i < M)
         sumMin += arr[i];
      if(i >= (N-M))
         sumMax += arr[i];
   }
   maxabsDiff = max(abs(sumMax - (arrSum - sumMax)), abs(sumMin -(arrSum - sumMin)));
   return maxabsDiff;
}
int main(){
   int arr[] = {3, 1, 6, 9, 4} ;
   int M = 3;
   int N = sizeof(arr)/sizeof(arr[0]);
   cout<<"The maximum weight difference is "<<maxWeightDifference(arr,N, M);
   return 0;
}

আউটপুট

The maximum weight difference is 15

  1. C++ এ কাজের সময়সূচীতে সর্বোচ্চ লাভ

  2. C++ এ একটি প্রদত্ত স্ট্রিংয়ের সর্বাধিক ওজন রূপান্তর

  3. C++-এ অ্যারেতে সর্বোচ্চ ট্রিপলেট যোগফল

  4. C++ এ সর্বাধিক সাবয়ারের সমষ্টি m মডিউল