আমাদের একটি সংখ্যার অ্যারে দেওয়া আছে। লক্ষ্য হল জোড়া (arr[i], arr[j]) বের করা যাতে i*arr[i] > j*arr[j] এবং i != j।
উদাহরণ
ইনপুট: arr[] = [1,5,4,1,2,8,3]
আউটপুট: ৩
ব্যাখ্যা: জোড়া: (5,1), (4,1), (8,3)।
ইনপুট: arr[] = [-1,-2,3,4,5,6]
আউটপুট: ১
ব্যাখ্যা: জোড়া: (-1,-2)।
অ্যালগরিদম
দুটি নেস্টেড লুপ দিয়ে সব জোড়া চেক করুন। বাহ্যিক লুপ i=0 থেকে size-2, অভ্যন্তরین লুপ j=i+1 থেকে size-1। শর্ত i*arr[i] > j*arr[j] পূরণ হলে কাউন্ট বাড়ান।
C++ বাস্তবায়ন
#include <iostream>
using namespace std;
int condition_pair(int arr[], int size) {
int count = 0;
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (i * arr[i] > j * arr[j]) count++;
}
}
return count;
}
int main() {
int arr[] = {2, 4, 1, 9, 6};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Count of pairs in an array that hold i*arr[i] > j*arr[j] are: "
<< condition_pair(arr, size);
return 0;
}
আউটপুট
Count of pairs in an array that hold i*arr[i] > j*arr[j] are: 2