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

C++-এ ইনডেক্স পেয়ার কাউন্ট যারা শর্ত পূরণ করে (Arr[i]+Arr[j]=max in range)

আমাদের প্রথম N প্রাকৃতিক সংখ্যার পারমুটেশন একটি অ্যারে দেওয়া আছে। লক্ষ্য হলো এমন ইনডেক্স পেয়ার (i,j) কাউন্ট করা যাতে Arr[i] + Arr[j] = max(Arr[x]) যেখানে i ≤ x ≤ j। অর্থাৎ, দুটি এলিমেন্টের যোগফল তাদের মাঝপথে পাওয়া যাবে সর্বোচ্চ এলিমেন্টের সমান।

ইনপুট

Arr[]= { 2,4,1,3,6,5 }

আউটপুট

Count of index pairs which satisfy the given condition: 1

ব্যাখ্যা: 1+5=6, 6 তাদের মাঝপথে আছে এবং ম্যাক্স 6। বাকি পেয়ার সন্তুষ্ট করে না।

ইনপুট

Arr[]= { 1,2,5,4,3 }

আউটপুট

Count of index pairs which satisfy the given condition: 2

ব্যাখ্যা: 1+4=5 (মাঝপথে 5, ম্যাক্স 5), 2+3=5 (মাঝপথে 5, ম্যাক্স 5)।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • countPairs(int A[], int n) ফাংশন।
  • count=0, max1=A[0], maxindex=0।
  • নেস্টেড লুপ i=0 to n-2, j=i+1 to n-1: A[j] >= max1 হলে max1, maxindex আপডেট।
  • যদি A[i]+A[j] == max1 এবং maxindex i ও j-এর মাঝপথে থাকে তবে count++।
  • count রিটার্ন।

উদাহরণ কোড

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

int countPairs(int A[], int n){
    int count = 0;
    int max1 = A[0], maxindex = 0;
    for (int i = 0; i < n-1; i++){
        for (int j = i+1; j < n; j++){
            if (A[j] >= max1){ max1 = A[j]; maxindex = j; }
            if (A[i] + A[j] == max1 && maxindex >= i && maxindex <= j)
                count++;
        }
    }
    return count;
}

int main(){
    int Arr[] = {3, 4, 6, 1, 5, 2};
    int size = 6;
    cout << "Count of index pairs which satisfy the given condition:" << countPairs(Arr, size);
    return 0;
}

আউটপুট

Count of index pairs which satisfy the given condition: 1
  1. C++-এ অ্যারেতে যেসব স্বতন্ত্র জোড়ার যোগফল অ্যারেতেই আছে তাদের গণনা

  2. C++-এ বাইনারি অ্যারেতে x দিয়ে বিভাজ্য প্রিফিক্সের সংখ্যা গণনা

  3. C++-এ দেওয়া শর্ত পূরণ করে N-ডিজিট সংখ্যা গণনা

  4. সি++ প্রোগ্রাম: দেওয়া শর্ত পূরণকারী a এবং b সংখ্যা খুঁজে বের করা