কম্পিউটার

C++ এ K নেগেশানের পরে অ্যারের যোগফল সর্বাধিক করুন


সমস্যা বিবৃতি

আকার n এবং একটি সংখ্যা k এর একটি অ্যারে দেওয়া হয়েছে। আমাদের একটি অ্যারে k সংখ্যা বার বার পরিবর্তন করতে হবে।

অ্যারে পরিবর্তন করার অর্থ হল প্রতিটি অপারেশনে আমরা যেকোন অ্যারের উপাদানকে প্রতিস্থাপন করতে পারি arr[i] কে নেগেট করে অর্থাৎ arr[i] =-arr[i]। কাজটি হল এই ক্রিয়াকলাপটি এমনভাবে সম্পাদন করা যাতে k অপারেশনের পরে, একটি অ্যারের যোগফল অবশ্যই সর্বাধিক হতে হবে৷

যদি ইনপুট arr[] ={7, -3, 5, 4, -1} হয় তাহলে সর্বোচ্চ যোগফল হবে 20

  • প্রথম নেগেট -3. এখন অ্যারে হয়ে যায় {7, 3, 5, 4, -1}
  • নেগেট -1. এখন অ্যারে হয়ে যায় {7, 3, 5, 4, 1}

অ্যালগরিদম

<পূর্ব>1. বর্তমান অপারেশন2 এর জন্য -arr[i] দ্বারা অ্যারেতে ন্যূনতম উপাদান arr[i] প্রতিস্থাপন করুন। ন্যূনতম উপাদান 0 হয়ে গেলে, আমাদের আর কোনো পরিবর্তন করতে হবে না। এইভাবে আমরা K অপারেশনের পরে অ্যারের সর্বোচ্চ যোগফল করতে পারি

উদাহরণ

(int i =1; i <=k; ++i) { int minValue =INT_MAX; int index =-1; (int j =0; j
  1. C++ এ একটি অ্যারে বিপরীত করুন

  2. C++ STL-এ অ্যারের যোগফল

  3. C++ সাম অ্যারে ধাঁধা

  4. C++ এ একটি সমষ্টি অ্যারে ধাঁধা?