fork(1) download
  1. #include <iostream>
  2. #include <set>
  3. #include <vector>
  4. #include <list>
  5. #include <cstring>
  6.  
  7. using namespace std;
  8.  
  9. using m=list<int>;set<m>f(auto a){set<m>r;for(int q=2e3,s;--q;){m c;s=10;for(int&x:a)if(q&1<<&x-&a[0])c.push_back(x),s-=x;if(!s)r.insert(c);}return r;}
  10.  
  11. char c[] = "using m=list<int>;set<m>f(auto a){set<m>r;for(int q=2e3,s;--q;){m c;s=10;for(int&x:a)if(q&1<<&x-&a[0])c.push_back(x),s-=x;if(!s)r.insert(c);}return r;}";
  12.  
  13. int main()
  14. {
  15. for (auto &r : f((vector<int>){5,5,2,3}))
  16. {
  17. for (auto &x : r)
  18. cout << x << ' ';
  19.  
  20. cout << '\n';
  21. }
  22.  
  23. std::cout << strlen(c) << "\n";
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
5 2 3 
5 5 
151