৩টি উপাদানের একটি অ্যারে A দেওয়া আছে। A[1] হবে A[0] এবং A[2]-এর গাণিতিক গড় যদি A[0] + A[2] = 2 × A[1] হয়। তিনটি সংখ্যার গাণিতিক গড় বিচ্যুতি d(A[0], A[1], A[2]) = |A[0] + A[2] - 2×A[1]|।
নিচের অপারেশন যেকোনো সংখ্যক বার করা যায়: দুটি ভিন্ন সূচক i এবং j নির্বাচন করুন (i ≠ j), তারপর A[i]-র মান ১ বাড়ান এবং A[j]-র মান ১ কমান। ন্যূনতম গাণিতিক গড় বিচ্যুতি বের করতে হবে।
সমাধানের ধাপসমূহ
অপারেশনগুলো থেকে মোট যোগফল অপরিবর্তিত থাকে। বিচ্যুতিটি মডুলো ৩-র মাধ্যমে নিয়ন্ত্রণ করা যায়। ন্যূনতম মান হবে min(1, ((a + c - 2b) % 3 + 3) % 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;
return 0;
}
ইনপুট
{ 2, 2, 6 }
আউটপুট
1
ব্যাখ্যা
A = [2, 2, 6] হলে, a=2, b=2, c=6। বিচ্যুতি = |2+6-4| = 4। অপারেশন করলে [1, 3, 6] হয়, বিচ্যুতি = |1+6-6| = 1। এটি ন্যূনতম।