sumofsubset always returning 1 : can anyone help !  
  **

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-html -->

    #include<iostream>
    using namespace std;
    bool sum1(int arr[],int sum,int k,int tsum,int m,int n)
    {   
    	
    	if(sum+arr[k]==m)
    	{
    		return true;
    	}
    	else if(sum+arr[k]+arr[k+1]<=m)
    	{
    		sum1(arr,sum+arr[k],k+1,tsum-arr[k],m,n);
    	}
    	if((sum+tsum-arr[k]>=m) && (sum+arr[k+1]<=m))
    	{
    		sum1(arr,sum,k+1,tsum-arr[k],m,n);
    	}

    	else if(k>n)
    	{
    		return false;
    	}
    	//return false;
    }
    int main()
    {
    	int arr[]={7,11,13,24};
    	if(sum1(arr,0,1,55,1,4))
    	{
    		cout<<1;
    	}
    	else{
    		cout<<0;
    	}
    }

<!-- end snippet -->

**
why this code is always returning 1 as result ,i am finding out the sum of subset ..this code is always returning true !!can anyone help me .