দুটি অ্যারে Arr1[] এবং Arr2[] ও একটি সংখ্যা K দেওয়া আছে। লক্ষ্য হল (Arr1[i], Arr2[j]) আকারের অনন্য জোড়া বের করা যাদের যোগফল K।
দুটি নেস্টেড লুপ দিয়ে সব জোড়া চেক করা হয়। যোগফল K হলে unordered_map-এ সংরক্ষণ করে অনন্যতা নিশ্চিত করা হয়।
ইনপুট: Arr1[]={1,3,2,4,3,2}, Arr2[]={0,2,1,2,3}, K=4
আউটপুট: যোগফল K হয় এমন অনন্য জোড়া: ৪
ব্যাখ্যা: (1,3), (3,1), (2,2), (3,1) — ডুপ্লিকেট বাদে ৪টি।
- দুটি অ্যারে, K, এবং তাদের দৈর্ঘ্য Len1, Len2 নেওয়া হয়।
pairsumisK(int arr1[], int arr2[], int k, int l1, int l2)ফাংশন অনন্য জোড়ার কাউন্ট রিটার্ন করে।- unordered_map দিয়ে অনন্য জোড়া ট্র্যাক করা হয়।
- দুটি লুপে সব জোড়া চেক করে যোগফল K হলে map-এ না থাকলে ইনসার্ট এবং count বাড়ানো হয়।
#includeusing namespace std; int pairsumisK(int arr1[], int arr2[], int k, int l1, int l2){ int count = 0; unordered_map umap; for (int i = 0; i < l1; i++){ for (int j = 0; j < l2; j++){ int sum = arr1[i] + arr2[j]; if(sum == k){ if(umap.find(arr1[i]) == umap.end()){ umap.insert(make_pair(arr1[i], arr2[j])); count++; } } } } return count; } int main(){ int Arr1[] = { 1,2,3,0,2,4 }; int Arr2[] = { 3,2,5,2 }; int len1 = sizeof(Arr1)/sizeof(Arr1[0]); int len2 = sizeof(Arr2)/sizeof(Arr2[0]); int K = 5; cout << endl << "যোগফল K হয় এমন অনন্য জোড়া: " << pairsumisK(Arr1, Arr2, K, len1, len2); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
যোগফল K হয় এমন অনন্য জোড়া: ০