मान लीजिए हमारे पास एक संख्या m और n सब-लिस्ट के साथ एक नेस्टेड लिस्ट A है। मान लीजिए m बल्ब हैं, प्रारंभ में सभी बंद हैं। n बटन हैं और उनमें से प्रत्येक कुछ बल्बों के सेट से जुड़ा हुआ है। तो A[i] बल्बों का सेट है जिन्हें iवां स्विच दबाकर चालू किया जा सकता है। हमें जांचना है कि क्या हम सभी बल्बों को जला सकते हैं या नहीं।
उदाहरण के लिए, यदि इनपुट A = [[1, 4], [1, 3, 1], [2]]; m = 4 है, तो आउटपुट True होगा, क्योंकि सभी स्विच दबाकर हम सभी चार बल्ब चालू कर सकते हैं।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
Define one set s for initialize i := 0, when i < size of A, update (increase i by 1), do: for initialize j := 0, when j < size of A[i], update (increase j by 1), do: insert A[i, j] into s if size of s is same as m, then: return true Otherwise return false
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; bool solve(vector > A, int m){ set s; for (int i = 0; i < A.size(); i++){ for (int j = 0; j < A[i].size(); j++){ s.insert(A[i][j]); } } if (s.size() == m) return true; else return false; } int main(){ vector > A = { { 1, 4 }, { 1, 3, 1 }, { 2 } }; int m = 4; cout < इनपुट
{ { 1, 4 }, { 1, 3, 1 }, { 2 } }, 4आउटपुट
1