ctor input, vector & output)     //recursive function to generate the unique subsets {     if(input.size()==0)     {         vector sum;                        //declaring a vector to store the combinations of the elements            sort(output.begin(),output.end());      //sorting it to make prevent duplicates entering the set         for(auto it: output)             sum.push_back(it);         s.insert(sum);                          //inserting the unique elements in the set         return;                                 //return to end the function     }     vector out1=output;                    //declaring a vector to store the elements of the subset     vector out2=output;                    //declaring

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

#include<bits/stdc++.h>             //input of the header files
using namespace std;
set<vector<int>> s;                 //declaing a set to store only the unique elements
void solve(vector<int> input, vector<int> & output)     //recursive function to generate the unique subsets
{
    if(input.size()==0)
    {
        vector<int> sum;                        //declaring a vector to store the combinations of the elements   
        sort(output.begin(),output.end());      //sorting it to make prevent duplicates entering the set
        for(auto it: output)
            sum.push_back(it);
        s.insert(sum);                          //inserting the unique elements in the set
        return;                                 //return to end the function
    }
    vector<int> out1=output;                    //declaring a vector to store the elements of the subset
    vector<int> out2=output;                    //declaring another vector to store the elements of the subset
        
    out2.push_back(input[0]);                   //inserting the first element in the second vector
    input.erase(input.begin()+0);               //erase function to delete the first element of the vector
    solve(input,out1);                          //recursive call to generate the subsets with the first vector
    solve(input,out2);                          //recursive call to generate the subsets with the second vector                   
}
vector<vector<int>> subsetsWithDup(vector<int>& nums) {                 //function which call the solve function to generate the subsets
    vector<int> output;
    solve(nums, output);
    vector<vector<int>> out;    
    for(auto it:s)
    {
        out.push_back(it);
    }
        
    return out;                             //returning the subsets after duplicates are removed
}
int main()
{
    int t=0;
    cin>>t;
    while(t--) {
        int n=0;        //input of the vector length
        cin>>n;
        vector<int>nums(n);
        for(int i=0;i<n;i++) {
            cin>>nums[i];
        }
        vector<vector<int>> out=subsetsWithDup(nums);

        //printing the output vector
        for(auto it:out) {
            for(auto it1:it) {
                cout<<it1<<" ";
            }
            cout<<endl;
        }
        cout<<endl;.

 

Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Quicksort
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education