ভূমিকা
একটি অ্যারে এবং একটি টার্গেট যোগফল S দেওয়া থাকলে, এমন একটি মান K বের করতে হবে যাতে অ্যারেতে K-র চেয়ে বড় সব মানকে K করে দিলে পুরো অ্যারের যোগফল S হয়।
উদাহরণ
অ্যারে: {12, 3, 6, 7, 8}, S = 15
সর্টেড: {3, 6, 7, 8, 12}
K = 3 হলে: {3,3,3,3,3} → যোগফল 15 ✓
আউটপুট: 3
এলগরিদম
getVal(arr, n, S)
শুরু
arr সর্ট করুন (ascending)
sum = 0
i = 0 থেকে n-1:
যদি sum + arr[i]*(n-i) == S: রিটার্ন arr[i]
sum += arr[i]
রিটার্ন -1
শেষ
C++ প্রোগ্রাম উদাহরণ
#include#include using namespace std; int getVal(int arr[], int n, int S) { sort(arr, arr+n); int sum = 0; for (int i = 0; i < n; i++) { if (sum + arr[i] * (n - i) == S) return arr[i]; sum += arr[i]; } return -1; } int main() { int arr[] = {12, 3, 6, 7, 8}; int S = 15; cout << getVal(arr, 5, S); // 3 return 0; }
আউটপুট
3