मान लीजिए कि हमारे पास 3 तत्वों के साथ एक सरणी ए है। ए [1] दो तत्वों ए [0] और ए [3] का अंकगणितीय माध्य है यदि ए [0] + ए [2] =2 * ए [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 से घटाएं। अंकगणित माध्य विचलन का न्यूनतम मान ज्ञात करना है।
इसलिए, यदि इनपुट ए =[2, 2, 6] की तरह है, तो आउटपुट 1 होगा, क्योंकि अगर हम ए [0] घटाते हैं और ए [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