এই সমস্যায়, আমাদের পরিসীমা [1, n] এর n পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। আমাদের কাজ হল এমন একটি প্রোগ্রাম তৈরি করা যা |arr[0] – arr[1] - + |arr[1] – arr[2] - + … +|arr[n – 2] – arr[-এর সর্বোচ্চ মান খুঁজে পাবে। n – 1]।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট − অ্যারে={1, 2, 3}
আউটপুট − 3
ব্যাখ্যা −
max sum is |1-3|+|2-1| = 3
এই সমস্যাটি সমাধান করার জন্য, একটি সহজ পদ্ধতি হল অ্যারে থেকে সমস্ত পারমুটেশন তৈরি করা। এবং পারমুটেশন থেকে সমস্ত মানের সর্বোচ্চ মান নির্ণয় কর। একটি আরও কার্যকর পদ্ধতি হল n-এর প্রতিটি মানের জন্য সমস্ত সর্বোচ্চ মানকে সাধারণীকরণ করা এবং তারপর একটি সাধারণ সূত্র তৈরি করা৷
তাই,
Maximum sum for (n = 1) = 0 Maximum sum for (n = 2) = 1 Maximum sum for (n = 3) = 3 Maximum sum for (n = 4) = 7 Maximum sum for (n = 5) = 11 So, the maximum value is 0, 1, 3, 7, 11…
সাধারণ সূত্র হল, ((n*n/2)-1)
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
#include <iostream> using namespace std; int maxAbsVal(int n) { if (n == 1) return 0; return ((n*n/2) - 1); } int main() { int n = 4; cout<<"The maximum sum of absolute difference is "<<maxAbsVal(n); return 0; }
আউটপুট
The maximum sum of absolute difference is 7