আমরা ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল arr[] এর উপাদানগুলির জোড়ার গণনা খুঁজে বের করা যাতে জোড়ায় উপাদান থাকে ( p, q ) যেখানে p অ্যারেতে কমপক্ষে q বার এবং q অ্যারেতে কমপক্ষে p বার দেখা যায়।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − int arr[] ={ 3, 3, 3, 5, 5, 6, 6}
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যেমন একটির ফ্রিকোয়েন্সি অন্যটির কমপক্ষে মান − 1
ব্যাখ্যা − একটি অ্যারেতে বৈধ জোড়া যেখানে p q বার হয় এবং q হয় p বার হয় (3, 3) যেমন 3 একটি অ্যারেতে 3 বার ঘটছে। সুতরাং শুধুমাত্র একটি বৈধ জোড়া আছে তাই গণনা হল 1।
ইনপুট − int arr[] ={ 3, 3, 3, 3, 3, 5, 5, 5, 6, 6}
আউটপুট − একটি অ্যারেতে জোড়ার সংখ্যা যেমন একটির ফ্রিকোয়েন্সি অন্যটির কমপক্ষে মান − 1
ব্যাখ্যা − একটি অ্যারের বৈধ জোড়া যেখানে p q বার হয় এবং q হয় p বার হয় (3, 3), (5, 5) এবং (3, 5) যেমন 3 5 বার ঘটছে এবং 5 একটি অ্যারেতে 3 বার হচ্ছে . সুতরাং তিনটি বৈধ জোড়া আছে তাই গণনা হল 3৷
৷নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন এবং আরও প্রক্রিয়াকরণের জন্য ফাংশনে ডেটা প্রেরণ করুন
-
p এবং q
এর উপস্থিতি সঞ্চয় করার জন্য একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন -
টাইপ ভেক্টরের একটি পরিবর্তনশীল vec তৈরি করুন এবং unordered_map টাইপের um
-
স্টার্ট লুপ ফর 0 থেকে একটি অ্যারের আকার পর্যন্ত
-
লুপের ভিতরে, um[arr[i]] কে 1 দ্বারা সেট করুন এবং চেক করুন যদি um 1 হয় তাহলে ভেক্টরে arr[i] চাপুন
-
0 থেকে একটি ভেক্টরের আকার পর্যন্ত অন্য লুপ শুরু করুন এবং IF um[vec[i]
-
লুপের ভিতরে জে চেক করুন IF um[j]>=vec[i] তারপর গণনা 1 দ্বারা বৃদ্ধি করুন
-
গণনা ফেরত দিন
-
ফলাফল প্রিন্ট করুন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int pair_count(int arr[], int len){ int count = 0; vector<int> vec; unordered_map<int, int> um; for (int i = 0; i < len; i++){ um[arr[i]]++; if (um[arr[i]] == 1){ vec.push_back(arr[i]); } } for (int i = 0; i < vec.size(); i++){ if (um[vec[i]] < vec[i]){ continue; } else if (um[vec[i]] == vec[i]){ count++;; } else{ count++; for (int j = vec[i] + 1; j <= um[vec[i]]; j++){ if (um[j] >= vec[i]){ count++; } } } } return count; } int main(){ int arr[] = { 1, 1, 1, 5, 5, 1}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of pairs (p, q) such that p occurs in array at least q times and q occurs at least p times are: "<<pair_count(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of pairs (p, q) such that p occurs in array at least q times and q occurs at least p times are: 1