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

সি++-এ সর্বোচ্চ পার্থক্য বালা পেয়ার বেছে নেওয়ার উপায় গণনা

একটি সংখ্যার অ্যারে Arr[] দেওয়া আছে। লক্ষ্য হল সর্বোচ্চ পার্থক্য বালা সব পেয়ারের মধ্যে যেসব পেয়ারের পার্থক্য সেই সর্বোচ্চ পার্থক্যের সমান, তাদের সংখ্যা গণনা করা। পেয়ার (i!=j) এবং arr[x]-arr[y] সর্বোচ্চ সম্ভব।

প্রথমে সর্বোচ্চ পার্থক্য (i!=j) বের করে maxdiff-এ রাখা হয়। তারপর সেই পার্থক্য বালা সব পেয়ার গণনা করা হয়।

উদাহরণ

ইনপুট: arr[] = { 1,2,3,2,4,1,5 }

আউটপুট: সর্বোচ্চ পার্থক্য বালা পেয়ার বেছে নেওয়ার উপায়: ২

ব্যাখ্যা: ন্যূনতম ১, সর্বোচ্চ ৫, সর্বোচ্চ পার্থক্য = ৫-১=৪। পেয়ার: (1,5) এবং (1,5) - দুটি উপায়।

ইনপুট: arr[] = { 2,4,2,4 }

আউটপুট: সর্বোচ্চ পার্থক্য বালা পেয়ার বেছে নেওয়ার উপায়: ৪

ব্যাখ্যা: ন্যূনতম ২, সর্বোচ্চ ৪, সর্বোচ্চ পার্থক্য = ২। পেয়ার: (2,4), (2,4), (4,2), (2,4) - চারটি উপায়।

অ্যাপ্রোচ

  • ইন্টিজার অ্যারে Arr[] নেওয়া হয়।
  • N ভেরিয়েবলে দৈর্ঘ্য।
  • countWays(int arr[], int n) ফাংশন অ্যারে এবং দৈর্ঘ্য গ্রহণ করে সর্বোচ্চ পার্থক্য বালা পেয়ার বেছে নেওয়ার উপায় রিটার্ন করে।
  • প্রাথমিক count ০, diff, maxdiff=0, mini, maxx।
  • mini=maxx=arr[0]। for লুপে ন্যূনতম এবং সর্বোচ্চ মান বের করা হয়। maxdiff = maxx - mini।
  • দুটি নেস্টেড for লুপে সব পেয়ার চেক করা হয়। diff = arr[i]-arr[j] এবং arr[j]-arr[i] আলাদা পেয়ার হিসেবে গণনা। diff == maxdiff হলে count বাড়ানো হয়।

উদাহরণ কোড

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

int countWays(int arr[], int n) {
    int count = 0;
    int diff, maxdiff = 0;
    int mini, maxx;
    mini = maxx = arr[0];
    for (int i = 0; i < n; i++) {
        if (arr[i] < mini) mini = arr[i];
        if (arr[i] > maxx) maxx = arr[i];
    }
    maxdiff = maxx - mini;
    for (int i = 0; i < n-1; i++) {
        for (int j = i+1; j < n; j++) {
            diff = arr[i] - arr[j];
            if (diff == maxdiff) count++;
            diff = arr[j] - arr[i];
            if (diff == maxdiff) count++;
        }
    }
    return count;
}

int main() {
    int Arr[] = { 3, 2, 1, 1, 3 };
    int N = 5;
    cout << endl << "No. of ways of choosing pair with maximum difference : " << countWays(Arr, N);
    return 0;
}

আউটপুট

No. of ways of choosing pair with maximum difference : 4
  1. ম্যাট্রিক্সের যেকোনো কলামে সর্বোচ্চ পার্থক্যের জোড়া খুঁজে বের করা C++-তে

  2. দেওয়া পার্থক্যের সাথে একটি জোড়া খুঁজে বের করা C++-এ

  3. অ্যারে অফ ইন্টিজার থেকে সর্বোচ্চ গুণফলের জোড়া খুঁজে বের করা C++-এ

  4. C++-এ অ্যারেতে সর্বোচ্চ GCD वाली পেয়ার বের করা