ধরুন আমাদের কাছে 3টি উপাদান সহ একটি অ্যারে রয়েছে। A[1] হল দুটি উপাদানের পাটিগণিত গড় A[0] এবং A[3] যদি A[0] + A[2] =2 * A[1] হয়। d(A[0], A[1], A[2]) তিনটি সংখ্যার পাটিগণিত গড় বিচ্যুতি হল|A[0] + A[2] - 2*A[1]|। আমরা যেকোন সংখ্যক বার নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করতে পারি:সূচক {0, 1, 2} থেকে দুটি সূচক i এবং j নির্বাচন করুন যেমন i !=j, তারপর A[i] 1 দ্বারা বৃদ্ধি করুন এবং A[j] 1 দ্বারা হ্রাস করুন। আমরা পাটিগণিত গড় বিচ্যুতির ন্যূনতম মান খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি A =[2, 2, 6] এর মত হয়, তাহলে আউটপুট হবে 1, কারণ আমরা যদি A[0] কমাই এবং A[1] বাড়াই, তাহলে অ্যারে হবে [1, 3, 6], সুতরাং গড় বিচ্যুতি হবে |1 + 6 - 2 * 3| =1.
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
a := A[0] b := A[1] c := A[2] return minimum of 1 and (((a + c - 2 * b) mod 3 + 3) mod 3)
উদাহরণ
আসুন আরও ভাল বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি—
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A) { int a = A[0]; int b = A[1]; int c = A[2]; return min(1, ((a + c - 2 * b) % 3 + 3) % 3); } int main() { vector<int> A = { 2, 2, 6 }; cout << solve(A) << endl; }
ইনপুট
{ 2, 2, 6 }
আউটপুট
1