मान लीजिए, हम एक भौतिकी प्रयोग कर रहे हैं। हमें मूल्यों के n जोड़े और एक थ्रेशोल्ड मान k दिया गया है। प्रत्येक युग्म का पहला मान कुल मान में जोड़ा जाता है और युग्म का दूसरा मान भी दूसरे कुल मान में जोड़ा जाता है। अब, हम जाँचते हैं कि क्या कुल मान न्यूनतम है या (k - कुल) मान न्यूनतम है। हम इसे दोनों योगों के लिए करते हैं और फिर उन्हें जोड़ते हैं और आउटपुट प्रिंट करते हैं।
इसलिए, यदि इनपुट n =4, k =20, मान ={{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))
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int n, int k, vector<pair<int,int>> values) {
int a = 0, b = 0;
for(int i = 0; i < n; i++){
a += values[i].first;
b += values[i].second;
}
cout<<min(a, k - a) + min(b, k - b);
}
int main() {
int n = 4, k = 20;
vector<pair<int,int>> 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