मान लीजिए, हम एक भौतिकी प्रयोग कर रहे हैं। हमें n मानों के जोड़े और एक थ्रेशोल्ड मान k दिया गया है। जोड़ी का पहला मान एक कुल मान में जोड़ा जाता है और जोड़ी का दूसरा मान दूसरे कुल मान में जोड़ा जाता है। अब, हम जांचते हैं कि एक कुल मान न्यूनतम है या (k - कुल) मान न्यूनतम है। हम दोनों योगों के लिए ऐसा करते हैं और फिर उन्हें जोड़कर आउटपुट प्रिंट करते हैं।
उदाहरण के लिए, यदि इनपुट n = 4, k = 20, values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}} है, तो आउटपुट 14 होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
a := 0, b = 0 for initialize i := 0, when i < n, update (increase i by 1), do: a := a + first value of values[i] b := b + second value of values[i] print(min((a, k - a) + minimum of b and k - b))
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; #define N 100 void solve(int n, int k, vector > values) { int a = 0, b = 0; for(int i = 0; i < n; i++){ a += values[i].first; b += values[i].second; } cout< > values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}}; solve(n, k, values); return 0; }
इनपुट
4, 20, {{3, 5}, {4, 3}, {2, 1}, {4, 4}}आउटपुट
14