I'm trying to print all increasing subsequence with following. But it is not working accordingly.
Please explain what actually my code doing.
I'm stuck since last 1 week. But unable to figure out.
#include <bits/stdc++.h>
using namespace std;
int temp[1000];
int ans = 1;
int cnt  = 0;
void solve(int *arr, int n, int k)
{
    if(k == n){
        cnt++;
        for(int j = 0; j < n; j++){
            cout<<temp[j]<<" ";
        }
        cout<<endl;
        return;
    }
    for(int i = k; i < n; ++i){
        if(arr[k] <= arr[i]){
            temp[k] = -2;
            solve(arr, n, i+1);
            temp[k] = 2;
        }
    }
}
int main()
{
    int arr[] = {4, 1, 13, 7, 0, 2, 8, 11, 3};
    //int arr[] = {-1, 1 ,2, 3, 4};
    //int arr[] = {-1,1,2,3,4,11, 5,6, 2, 9};
    memset(temp, -1, sizeof(temp));
    solve(arr, 9, 0);
    cout<<cnt<<endl;
    return 0;
}
Output should be total number of enumerating increasing subsequence.
 
     
    