আমাদের একটি পরিসীমা [a,b] সংজ্ঞায়িত করতে পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে, Arr[] এবং দুটি ভেরিয়েবল a এবং b। লক্ষ্য হল এই সীমা [a,b] এর মধ্যে থাকা ত্রিপলের সংখ্যা খুঁজে বের করা।
আমরা তিনটি ফর লুপ ব্যবহার করে এটি করব। arr[i]+arr[j]+arr[k]>=a এবং arr[i]+arr[j]+arr[k]<=b হলে বৃদ্ধির সংখ্যা। যেখানে 0<=i<=n-2, i
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − arr[]={ 1,2,3,4,5 }, N=5, L=2, R=8
আউটপুট − ট্রিপলেটের সংখ্যা − 4
ব্যাখ্যা −
ইনপুট − arr[]={2,2,2,2,2}, N=5, L=2, R=5
আউটপুট − ট্রিপলেটের সংখ্যা − 0
ব্যাখ্যা −
প্রতিটি ট্রিপলেটের যোগফল 6 হবে। যা পরিসরে নয় [2,5]
মোট ট্রিপলেট:0
আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।
একটি পরিসর [L,R] সংজ্ঞায়িত করার জন্য চলক L এবং R নিন। N Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।
ফাংশন countTriplets(int arr[],int n,int a,int b) একটি অ্যারে নেয়, এর দৈর্ঘ্য এবং পরিসীমা ভেরিয়েবলগুলিকে ইনপুট হিসাবে দেয় এবং ট্রিপলেটগুলিকে ফেরত দেয় যার সমষ্টি এই পরিসরে থাকে৷
ট্রিপলেটের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।
প্রতিটি ট্রিপলেটের যোগফল হিসাবে প্রাথমিক পরিবর্তনশীল যোগফল নিন। প্রাথমিকভাবে 0.
ট্রিপলেটের প্রতিটি উপাদানের জন্য তিনটি লুপ ব্যবহার করে ট্রাভার্স অ্যারে।
0<=i
যোগফল=arr[i]+arr[j]+arr[k] গণনা করুন। যদি a<=sum<=b তাহলে ইনক্রিমেন্ট কাউন্ট।
সমস্ত লুপ গণনার শেষে শর্ত পূরণকারী মোট ট্রিপলেট সংখ্যা থাকবে।
পছন্দসই ফলাফল হিসাবে গণনা ফেরত দিন।
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −Triplets with sum>=2 and sum<=8
(1,2,3) → 6
(1,2,4) → 7
(1,2,5) → 8
(1,3,4) → 8
Total triplets: 4
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[],int n,int a,int b){
int count = 0;
int sum=0;
for (int i = 0; i < n-2; i++){
for (int j = i+1; j < n-1; j++){
for (int k = j+1; k < n; k++){
sum=arr[i]+arr[j]+arr[k];
if ( sum>=a && sum<=b) //check{
count++;
// cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
}
}
}
}
return count;
}
int main(){
int Arr[]={ 5,4,3,6,8,2 };
int L=9;
int R=15;
int N=6; //length of array
cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N,L,R);
return 0;
}
আউটপুট
Number of triplets : 14