मान लीजिए हमारे पास तीन संख्याएं a, b और c हैं। तीन स्टिक हैं जिनकी लंबाई a, b और c है। एक मिनट में, हम एक मनमाना स्टिक चुन सकते हैं और उसकी लंबाई 1 सेमी बढ़ा सकते हैं, लेकिन हम स्टिक नहीं तोड़ सकते। हमें उनकी लंबाई बढ़ाने के लिए आवश्यक न्यूनतम मिनटों की संख्या गिननी है और हम उनसे एक त्रिभुज बना सकते हैं।
उदाहरण के लिए, यदि इनपुट a = 2; b = 3; c = 5 है, तो आउटपुट 1 होगा, क्योंकि a या b में से किसी एक को 1 से बढ़ाकर, हम एक त्रिभुज बना सकते हैं (a + b) > c। तो एक मिनट पर्याप्त है।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
Define an array A = { a, b, c } sort the array A return maximum of (A[2] - A[1] - A[0] + 1) and 0
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#include <bits/stdc++.h> using namespace std; int solve(int a, int b, int c) { vector<int> A = { a, b, c }; sort(A.begin(), A.end()); return max(A[2] - A[1] - A[0] + 1, 0); } int main() { int a = 2; int b = 3; int c = 5; cout << solve(a, b, c) << endl; }
इनपुट
2, 3, 5
आउटपुट
1