Problem Link: JACK_ Problem - CodeChef
Feedback
how is this program passing for the test case
1
5
1 1 1 1 0
as there are only 5 numbers and program is giving yes.
Problem Link: JACK_ Problem - CodeChef
how is this program passing for the test case
1
5
1 1 1 1 0
as there are only 5 numbers and program is giving yes.
@jay_yadav93
Its working fine for me .
Yeah for this test case it will be NO.
can u send the code for which u got accepted and then this test case shows wrong ans.
https://www.codechef.com/viewsolution/91975277
include
using namespace std;
int main() {
// your code goes here
int t;
cin>>t;
while(t–)
{
int n;
cin>>n;
int a[n];
int s=0,p=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]%2==0)
{
s++;
}
else
{
p++;
}
}
if((p==0)||(s==0)&&(p%2==0)||n<5)
{
cout<<“NO”<<endl;
}
else if(p>=1&&s>=1)
{
cout<<“YES”<<endl;
}
}
return 0;
}
@jay_yadav93
Yeah u r right your code is logically not complete but it passes all the test cases .
They have not considered this test case .
This is the logic i have written which will pass all test case even yours .
I hope u will get it.
int n;
cin>>n;
int a[n];
int c=0,c1=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]%2==0)
c++;
else
c1++;
}
if((c1>=1&&c>=4)||(c1>=3&&c>=2)||(c1>=5))
cout<<"YES";
else
cout<<"NO";
cout<<endl;
thank you i have understood. but i am not getting why is this code incorrect
void solve()
{
int n;
cin>>n;
if(n<5) {
cout<<"NO\n";
return;
}
int ans = 0;
int odd = 0;
for(int i = 0; i<n; i++)
{
int x = 0;
cin>>x;
if((x&1) == 1)
{
odd++;
}
}
int even = n - odd;
if((odd&1) == 0)
{
ans += (odd - 1);
}
else
ans = odd;
if(ans + even >= 5 && odd > 0)
{
cout<<"YES\n";
}
else
cout<<"NO\n";
}