मान लीजिए कि हमारे पास n उप-सूचियों के साथ एक संख्या m और एक नेस्टेड सूची A है। विचार करें कि एम बल्ब हैं, शुरू में सभी बंद हैं। n बटन होते हैं और उनमें से प्रत्येक बल्ब के किसी न किसी सेट से जुड़ा होता है। तो A[i] बल्बों का सेट है जिसे ith स्विच दबाकर चालू किया जा सकता है। हमें जांचना होगा कि हम सभी बल्ब जला सकते हैं या नहीं।
इसलिए, यदि इनपुट ए =[[1, 4], [1, 3, 1], [2]] जैसा है; एम =4, तो आउटपुट ट्रू होगा, क्योंकि सभी स्विच को दबाकर हम चारों बल्बों को चालू कर सकते हैं।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
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
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; bool solve(vector<vector<int>> A, int m){ set<int> 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<vector<int>> A = { { 1, 4 }, { 1, 3, 1 }, { 2 } }; int m = 4; cout <<solve(A, m) << endl; }
इनपुट
{ { 1, 4 }, { 1, 3, 1 }, { 2 } }, 4
आउटपुट
1