Print All Combination Of A Given Array For Multiple Same Element

#include<bits/stdc++.h>
using namespace std;
void combination(int a[], int n, int r, int index, int data[], int i);

void printcombination(int a[], int n, int r)
{
    int data[r];
    sort(a, a+n);
    combination(a, n, r, 0, data, 0);
}

void combination(int a[], int n, int r, int index, int data[], int i)
{
    if(index == r)
    {
        int i;
        for(i=0;i<r;i++)
            cout << data[i];
        cout << endl;
        return;
    }
    if(i >= n)
        return;
    data[index] = a[i];
    combination(a, n, r, index+1, data, i+1);
    while(a[i] == a[i+1])
        i++;
    combination(a, n, r, index, data, i+1);
}
int main()
{
    int n, r, i;

    cout << "Enter Array Size :: ";
    cin >> n;

    int a[n];
    cout << "Enter Array Element :: " << endl;
    for(i=0;i<n;i++)
        cin >> a[i];

    cout << "Enter r :: ";
    cin >> r;

    printcombination(a, n, r);
    return 0;
}

Comments