এই সমস্যাতে, আমাদের n সংখ্যক পূর্ণসংখ্যার একটি অ্যারে দেওয়া থাকে এবং আমরা সেখানে Kটি উপাদান যোগ করব। এরপর ফলাফলস্বরূপ অ্যারেটির মধ্যমা বের করতে হবে। শর্ত হলো (N + K) হবে বিষম সংখ্যা।
উদাহরণ
ইনপুট:
array = {23, 65, 76, 67} ; k = 1
আউটপুট:
67
সমাধানের পদ্ধতি
সমস্যাটি সমাধান করতে দেওয়া উপাদানগুলোকে আরোহী ক্রমে সর্ট করতে হবে। তারপর Kটি বড় উপাদান অ্যারেতে শেষে যোগ করব। যেহেতু (n + K) বিষম, তাই মধ্যমা হবে arr[(n + K) / 2] ইনডেক্সের উপাদান।
C++ প্রোগ্রাম উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int findMedianAfterK(int arr[], int n, int K) {
sort(arr, arr + n);
return arr[((n + K) / 2)];
}
int main() {
int array[] = {3, 56, 8, 12, 67, 10};
int k = 3;
int n = sizeof(array) / sizeof(array[0]);
cout << "The median after adding " << k << " elements is " << findMedianAfterK(array, n, k);
return 0;
}
আউটপুট
The median after adding 3 elements is 56