अवधारणा
तीन अलग-अलग प्रकार के कप (p[]) और सॉसर (q[]) और m संख्या के शेल्फ दिए गए हैं, निर्धारित करें कि कप और शेल्फ की सुव्यवस्थित व्यवस्था की जा सकती है या नहीं।
अब, कप और सॉसर की व्यवस्था सुव्यवस्थित होगी यदि यह निम्नलिखित नियमों का पालन करती है −
<उल क्लास="सूची"><ली>पहले नियम के अनुसार, कोई भी शेल्फ कप और सॉसर दोनों को नहीं रख सकता।ली><ली>दूसरे नियम के अनुसार, किसी भी शेल्फ में 5 से अधिक कप नहीं हो सकते।ली><ली>तीसरे नियम के अनुसार, किसी भी शेल्फ में 10 से अधिक सॉसर नहीं हो सकते।ली>उल>इनपुट
p[] = {4, 3, 7} q[] = {5, 9, 10} m = 11आउटपुट
Yes
व्याख्या
कुल कप = 14, आवश्यक शेल्फ = 3
कुल सॉसर = 24, आवश्यक शेल्फ = 3
तो, कुल आवश्यक शेल्फ = 3 + 3 = 6,
जो दिए गए शेल्फ की संख्या m से कम है। इसलिए, आउटपुट Yes है।
इनपुट
p[] = {5, 8, 5} q[] = {4, 10, 11} m = 3आउटपुट
No
कुल कप = 18, आवश्यक शेल्फ = 4
कुल सॉसर = 25, आवश्यक शेल्फ = 3
तो, कुल आवश्यक शेल्फ = 4 + 3 = 7,
जो दिए गए शेल्फ की संख्या m से अधिक है। इसलिए, आउटपुट No है।
विधि
कप और सॉसर की व्यवस्था के लिए, कप की कुल संख्या p और सॉसर की कुल संख्या q निर्धारित करें। क्योंकि, एक ही शेल्फ में 5 से अधिक कप नहीं हो सकते, इसलिए कप के लिए आवश्यक अधिकतम शेल्फ की संख्या सूत्र (p+5-1)/5 द्वारा निर्धारित करें और सॉसर के लिए सूत्र (q+10-1)/10 लागू करके आवश्यक अधिकतम शेल्फ की संख्या निर्धारित करें। यह देखा गया है कि यदि इन दो मानों का योग m से कम या बराबर है तो व्यवस्था संभव है अन्यथा नहीं।
उदाहरण
<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट">// C++ code to find if neat // arrangement of cups and // shelves can be made #include<bits/stdc++.h> using namespace std; // व्यवस्था जांचने वाला फ़ंक्शन void canArrange1(int p[], int q[], int m){ int sump = 0, sumq = 0; // कप की कुल संख्या की गणना करने के लिए उपयोग किया जाता है for(int i = 0; i < 3; i++) sump += p[i]; // सॉसर की कुल संख्या की गणना करने के लिए उपयोग किया जाता है for(int i = 0; i < 3; i++) sumq += q[i]; // अब 5 और 10 जोड़ रहे हैं ताकि यदि // कुल योग 5 और से कम है // 10 तो हम 1 को उत्तर के रूप में प्राप्त कर सकें // और 0 नहीं int mp = (sump + 5 - 1) / 5; int mq = (sumq + 10 - 1) / 10; if(mp + mq <= m) cout << "Yes"; else cout << "No"; } // ड्राइवर कोड int main(){ // प्रत्येक प्रकार के कप की संख्या दिखाता है int p[] = {4, 3, 7}; // प्रत्येक प्रकार के सॉसर की संख्या दिखाता है int q[] = {5, 9, 10}; // शेल्फ की संख्या दिखाता है int m = 10; // फ़ंक्शन कॉल इंगित करता है canArrange1(p, q, m); return 0; }आउटपुट
Yes