इस समस्या में, हमें पूर्णांकों की एक सरणी दी जाती है। हमारा काम यह जांचना है कि क्या सरणी के तत्वों को त्रिभुज की भुजाओं के रूप में लेते हुए एक गैर-पतित त्रिभुज का निर्माण होता है।
गैर-पतित त्रिभुज - यह एक त्रिभुज है जिसका एक धनात्मक क्षेत्रफल है। a, b, c भुजाओं वाले एक गैर-पतित त्रिभुज के लिए शर्त है -
a + b > c a + c > b b + c > a
आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
इनपुट - गिरफ्तारी[2, 5 ,9, 4, 3]
आउटपुट - हाँ
स्पष्टीकरण - बनने वाला त्रिभुज 2 3 4 है।
इस समस्या को हल करने के लिए, हम जाँच करेंगे कि उपरोक्त शर्त सरणी के मानों से संतुष्ट है।
एक नौसेना समाधान में सरणी के प्रत्येक त्रिक की सीधी जाँच शामिल होगी।
एक अधिक प्रभावी समाधान में सरणी तत्वों को छाँटना और सरणी के लगातार तीन ट्रिपल की जाँच करना शामिल होगा। सॉर्ट किए गए सरणी के लिए यदि दो तत्वों का योग अगले एक से अधिक नहीं है तो उसके बाद के चेक मान योग्य नहीं हैं (वे पहले से ही बड़े हैं)।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम
#include <bits/stdc++.h> using namespace std; bool isTrianglePossible(int arr[], int N){ if (N < 3) return false; sort(arr, arr + N); for (int i = 0; i < N - 2; i++) if (arr[i] + arr[i + 1] > arr[i + 2]) return true; } int main() { int arr[] = {5, 12, 13, 65, 6, 1}; int N = sizeof(arr) / sizeof(int); cout<<"Creation of triangle from elements of array "; isTrianglePossible(arr, N)?cout<<"is Possible": cout<<"is not Possible"; return 0; }
आउटपुट
Creation of triangle from elements of array is Possible