मान लीजिए हमारे पास 3 तत्वों वाला एक सरणी 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]| है। हम निम्नलिखित संक्रियाएं कितनी भी बार कर सकते हैं: सूचकांक {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