Chef and Subset giving wrong answer

Below is the link to the question:

Below is my code in which i have written all the conditions but iam getting wrong answer.
I dont know in which case iam getting wrong answer.

#include<iostream>
#include<cstdio>
#define FAST_IO ios_base::sync_with_stdio(false);cin.tie(NULL);


using namespace std;

int main()
{
	FAST_IO
int T;
long int a,b,c,d;
cin>>T;
while(T--)
{
	cin>>a>>b>>c>>d;
	int count=0;
	
	if((a>0) && (b>0) && (c>0) && (d>0))
			cout<<"No"<<"\n";
			
	else if((a<0) && (b<0) && (c<0) &&(d<0))
			cout<<"No"<<"\n";
			
	else if((a==0) || (b==0)||( c==0) || (d==0))
			cout<<"Yes"<<"\n";
	else
	{
		
		
		if(a>0)
			count++;
		if(b>0)
			count++;
		if(c>0)
			count++;
		if(d>0)
			count++;
		//cout<<count<<"\n";
	if(count == 1)
{
	if(a>0)
	{
		if((a+b+c+d==0) || (a+b+c==0) || (a+c+d ==0) ||(a+b+d==0) ||(a+b==0)||(a+c==0)||(a+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	else if(b>0)
	{
		if((b+a+c+d==0) || (b+a+c==0) || (b+c+d ==0) ||(b+a+d==0) ||(a+b==0)||(b+c==0)||(b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	else if(c>0)
	{
		if((c+a+b+d==0) || (b+a+c==0) || (b+c+d ==0) ||(c+a+d==0) ||(c+b==0)||(a+c==0)||(c+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
	}
	else
	{
		if((c+a+b+d==0) || (d+a+c==0) || (b+c+d ==0) ||(c+a+d==0) ||(c+d==0)||(a+d==0)||(b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	
}

else if(count == 2)
{
	if(a>0 && b>0)
	{
		if((a+b+c+d==0) || (a+b+c==0)  ||(a+b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	else if(a>0 && c>0)
	{
		if((a+b+c+d==0) || (a+b+c==0)  ||(a+c+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	else if(a>0 && d>0)
	{
		if((a+b+c+d==0) || (a+d+c==0)  ||(a+b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
	else if(b>0 && c>0)
	{
		
		if((a+b+c+d==0) || (a+b+c==0)  ||(c+b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
	}
	else if(b>0 && d>0)
	{
		
		if((a+b+c+d==0) || (a+d+b==0)  ||(c+b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
	}
	else if(c>0 && d>0)
	{
		
		if((a+b+c+d==0) || (a+d+c==0)  ||(c+b+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
		
	}
}
else 
{
	if(a>0 &&b>0 &&c>0)
	{
		if((a+b+c+d==0) ||(a+d==0) ||(b+d==0) ||(c+d==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
			
	}
	else if(a>0&&c>0&&d>0)
	{
		if((a+b+c+d==0) ||(b+d==0) ||(b+c==0) ||(a+b==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
	}
	else if(b>0 &&c>0&&d>0)
	{
			if((a+b+c+d==0) ||(d+a==0) ||(c+a==0) ||(a+b==0))
			cout<<"Yes"<<"\n";
		else
			cout<<"No"<<"\n";
	}
		
}
	}
	
}


    return 0;
}


Ya that went wrong.
You forgot to check a+b+d and checked a+c+d twice
but you could have just done this

 int n;
	    //cin>>n;
	    n=4;
	   int a[n];
	   for(int i=0;i<n;i++){
	      cin>>a[i];
	   }
       for(int i=1;i<(1<<n);i++){
           ll sum=0;
           for(int j=0;j<n;j++){
               if(i & 1<<j){
                   sum+=a[j];
               }
           }
           if(sum==0){
               return 1;
           }
       }
	   return 0;

Oh wait, there are a more problems
If count==2, Why do we need both a and b. We can just use one of them. I hope you know the best bound you can put is that there will be at least one positive and one negative number.