তিনটি অ্যারে A[], B[], C[] দেওয়া আছে। লক্ষ্য হল এই তিনটি অ্যারের উপাদান দিয়ে A[i] < B[j] < C[k] সন্তুষ্টকারী সব ট্রিপলেট বের করা। তিনটি অ্যারের দৈর্ঘ্য সমান N।
প্রতিটি অ্যারে একবার ট্রাভার্স করে A[i] < B[j] && B[j] < C[k] চেক করা হয়। সত্য হলে count বাড়ানো হয়।
উদাহরণ
ইনপুট:
A[] = {1,4,5}, B = {0,2,3}, C = {0,6,7}
আউটপুট: ট্রিপলেট সংখ্যা: ৪
ব্যাখ্যা: A[i] < B[j] < C[k] সন্তুষ্টকারী ট্রিপলেট: (1,2,6), (1,2,7), (1,3,6), (1,3,7)। মোট ৪টি।
ইনপুট:
A[] = {7,8,9}, B = {4,5,6}, C = {1,2,3}
আউটপুট: ট্রিপলেট সংখ্যা: ০
ব্যাখ্যা: A[i] < B[j] < C[k] সন্তুষ্টকারী কোনো ট্রিপলেট নেই।
অ্যাপ্রোচ
- সমান দৈর্ঘ্যের তিনটি ইন্টিজার অ্যারে A[], B[], C[] নেওয়া হয়।
- N ভেরিয়েবলে দৈর্ঘ্য।
countTriplets(int a[], int b[], int c[], int n)ফাংশন তিনটি অ্যারে এবং দৈর্ঘ্য গ্রহণ করে শর্ত সন্তুষ্টকারী ট্রিপলেট রিটার্ন করে।- তিনটি নেস্টেড লুপ: আউটার 0<=i
- যদি a[i] < b[j] && b[j] < c[k] হয়, count বাড়ানো হয়।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int a[], int b[], int c[], int n) {
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if (a[i] < b[j] && b[j] < c[k]) {
count++;
}
}
}
}
return count;
}
int main() {
int A[] = { 1,2,3 };
int B[] = { 2,3,2 };
int C[] = { 4,3,1 };
int N = 3;
cout << endl << "Number of triplets : " << countTriplets(A, B, C, N);
return 0;
}
আউটপুট
Number of triplets : 6