ধরুন একটা অ্যারে দেওয়া হল। আমাদের সেই অ্যারের প্রতিটি উপাদানের একটি সংখ্যা অতিক্রম করতে হবে। সারপাসার হল বৃহত্তর উপাদান যা বর্তমান উপাদানের অ্যারের ডান দিকে উপস্থিত থাকে। ধরুন A ={2, 7, 5, 3, 0, 8, 1}, অতিক্রমকারীরা হল {4, 1, 1, 1, 2, 0, 0}, তাই 2-এর ডান পাশে 4টি সংখ্যা রয়েছে, যা বড়। 4 এর চেয়ে, এবং অন্যদের জন্য একই নিয়ম। সমাধানটি খুবই সহজ, দুটি নেস্টেড লুপ থাকবে, প্রতিটি উপাদানের জন্য, এটি অতিক্রমকারীদের গণনা করবে, তারপর সেগুলিকে অন্য অ্যারেতে সংরক্ষণ করবে৷
উদাহরণ
#include <iostream> using namespace std; void gerSurpassers(int arr[], int surpassers[], int n){ for(int i = 0; i<n; i++){ int count = 0; for(int j = i+1; j<n; j++){ if(arr[j] > arr[i]) count++; } surpassers[i] = count; } } void displayArray(int arr[], int n){ for(int i = 0; i<n; i++){ cout << arr[i] << " "; } cout << "\n"; } int main() { int arr[] = {2, 7, 5, 3, 0, 8, 1}; int n = sizeof(arr) / sizeof(arr[0]); int surpassers[n]; cout << "Elements :"; displayArray(arr, n); gerSurpassers(arr, surpassers, n); cout << "Surpassers:"; displayArray(surpassers, n); }
আউটপুট
Elements :2 7 5 3 0 8 1 Surpassers:4 1 1 1 2 0 0