मान लीजिए कि हमारे पास 4 तत्वों के साथ एक सरणी ए है। कैंडीज के 4 बैग हैं, ith बैग में A[i] कैंडीज की मात्रा है। हम प्रत्येक बैग अपने दो दोस्तों में से एक को देना चाहते हैं। हमें यह जांचना होगा कि क्या हम इन बैगों को इस तरह वितरित कर सकते हैं कि प्रत्येक मित्र को कुल मिलाकर समान मात्रा में कैंडी प्राप्त हो?
इसलिए, यदि इनपुट ए =[1, 7, 11, 5] जैसा है, तो आउटपुट ट्रू होगा, क्योंकि हम पहले दोस्त को पहला और तीसरा बैग और दूसरा और चौथा बैग दे सकते हैं। दूसरा दोस्त। इस तरह, प्रत्येक मित्र को 12 कैंडी प्राप्त होगी।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
a := A[0] b := A[1] c := A[2] d := A[3] if (a + b) is same as (c + d) or (a + c) is same as (b + d) or (a + d) is same as (b + c) or (a + b + c) is same as d or (a + b + d) is same as c or (a + c + d) is same as b or (b + c + d) is same as a, then: return true Otherwise return false
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; bool solve(vector<int> A) { int a = A[0]; int b = A[1]; int c = A[2]; int d = A[3]; if (a + b == c + d || a + c == b + d || a + d == b + c || a + b + c == d || a + b + d == c || a + c + d == b || b + c + d == a) return true; else return false; } int main() { vector<int> A = { 1, 7, 11, 5 }; cout << solve(A) << endl; }
इनपुट
1, 7, 11, 5
आउटपुट
1