চারটি অ্যারে দেওয়া আছে। লক্ষ্য হল চারটি অ্যারে থেকে এক-এক উপাদান নিয়ে এমন কোয়াড্রুপলেট (চারটি সংখ্যার সমষ্টি) খুঁজে বের করা যাদের যোগফল দেওয়া Sum মানের সমান। চারটি উপাদান চারটি আলাদা অ্যার থেকে আসতে হবে।
উদাহরণ
ইনপুট:
A[]={ 1,3,1}, B[]={ 2,4,5 } , C[]={ 1,1,2 } , D[]= { 4,4,0} Sum=5
আউটপুট: দিয়ে সমান কোয়াড্রুপলেটের সংখ্যা: ২
ব্যাখ্যা:
২টি কোয়াড্রুপলেট: (A[0],B[0],C[2],D[2]) → (1,2,2,0), sum=5 (A[2],B[0],C[2],D[2]) → (1,2,2,0), sum=5
ইনপুট:
A[]={ 1,1,1}, B[]={ 1,1,1 } , C[]={ 1,1,1 } , D[]= {1,1,1} Sum=3
আউটপুট: দিয়ে সমান কোয়াড্রুপলেটের সংখ্যা: ০
ব্যাখ্যা: সব কোয়াড্রুপলেটের যোগফল ৪ হবে যা ৩-এর চেয়ে বড়।
অ্যাপ্রোচ
- first[], second[], third[], fourth[] - চারটি সমান দৈর্ঘ্যের ইন্টিজার অ্যারে নেওয়া হয়।
- প্রতিটি অ্যারের দৈর্ঘ্য সংরক্ষণ করা হয়।
- Sum ভেরিয়েবলে লক্ষ্য যোগফল রাখা হয়।
quadruplets()ফাংশন সব অ্যারে, দৈর্ঘ্য এবং Sum গ্রহণ করে কোয়াড্রুপলেটের গণনা রিটার্ন করে।- চারটি নেস্টেড for লুপ দিয়ে সব সম্ভাব্য কম্বিনেশন চেক করা হয়।
- যদি first[i] + second[j] + third[k] + fourth[l] == sum হয়, count বাড়ানো হয়।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int quadruplets(int first[], int second[], int third[], int fourth[],
int first_size, int second_size, int third_size, int fourth_size, int sum) {
int count = 0;
for (int i = 0; i < first_size; i++) {
for (int j = 0; j < second_size; j++) {
for (int k = 0; k < third_size; k++) {
for (int l = 0; l < fourth_size; l++) {
if (first[i] + second[j] + third[k] + fourth[l] == sum) {
count++;
}
}
}
}
}
return count;
}
int main() {
int first[] = { 7, -8 };
int second[] = { 7, -2 };
int third[] = { 4, -2 };
int fourth[] = { 3, -4 };
int first_size = sizeof(first) / sizeof(first[0]);
int second_size = sizeof(second) / sizeof(second[0]);
int third_size = sizeof(third) / sizeof(third[0]);
int fourth_size = sizeof(fourth) / sizeof(fourth[0]);
int sum = 0;
cout << "Count of quadruplets with given sum are: " << quadruplets(first, second, third, fourth,
first_size, second_size, third_size, fourth_size, sum);
return 0;
}
আউটপুট
Count of quadruplets with given sum are: 1