Cook-off bulbs

(https://www.ideone.com/ou7MPA).
this is the link to my code can someone please look at it as i am not able to find any wrong answer aq to my input.

In line 54, u should push cnt0 if cnt0>0
try to debug then.

1
9 2
001000100

Is the answer 4 for that test case?

No, its 3. :slight_smile:

1 Like

Weak test cases again then. My AC solution outputs: 4.

please can someone help me in off bulb problem i have tried all test cases which come to my mind please help
Here is my code

#include<bits/stdc++.h>
using namespace std;
//#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl “\n”
#define mod 1000000007
#define vll vector
#define pb push_back
#define vi vector
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
typedef long long ll;
int main()
{
fastio;
ll t;
cin>>t;
while(t–)
{
ll n,i,j,f=1,k,o=0,s=0;
cin>>n>>k;
string a;
cin>>a;
vectorv;
vectorstart(n),end(n);
vectorg(n);
ll x1=0,x2=0;
for(i=0;i<n;i++)
{
if(a[i]==‘0’)
{
x1++;
g[i]=1;
}
else
break;
}
for(j=n-1;j>=0;j–)
{
if(a[j]==‘0’&&g[j]==0)
{
x2++;
g[j]=1;
}
else
break;
}
ll ele=x1+x2;
for(i=0;i<n;i++)
{
if(a[i]==‘0’)
s++;
if(g[i]==1)
continue;
if(a[i]==‘0’)
{o++;}
else
{
if(o>0)
v.pb(o);
o=0;
}
}
//cout<<x1<<" “<<x2<<” “;
//sort(v.begin(),v.end());
if(x1>0&&x2>0)
{
v.pb(ele);
sort(v.rbegin(),v.rend());
//for(ll x : v)
//cout<<x<<” ";
ll count=0;
for(i=0;i<v.size();i++)
{
if(v[i]==ele)
count++;
}

        for(i=0;i<v.size();i++)
        {
            if(k>=2)
            {
                s=s-v[i];
                k=k-2;
                if(v[i]==ele)
            {
                count--;
            }
            }
            
        }
        if(k>=1&&count>0)
        {
            if(x1>=x2)
            {
                s=s-x1;
            }
            else
            {
                s=s-x2;
            }
        }
    }
    else if(x1>0&&x2==0)
    {
        v.pb(x1);
        sort(v.rbegin(),v.rend());
        int f1=1;
        //cout<<s<<" ";
        ll count=0;
        for(i=0;i<v.size();i++)
        {
            if(v[i]==x1)
            count++;
        }
        for(i=0;i<v.size();i++)
        {
            if(k>=1&&v[i]==x1&&f1==1)
            {
                k=k-1;
                count--;
                s=s-v[i];
                f1=0;
            }
            else if(k>=2)
            {
                k=k-2;
                s=s-v[i];
               // cout<<s<<" ";
            }
           // cout<<s<<" "<<k<<"   ";
        }
       // cout<<s<<" ";
       
    }
    else if(x1==0&&x2>0)
    {
         v.pb(x2);
        sort(v.rbegin(),v.rend());
        int f1=1;
        ll count=0;
        for(i=0;i<v.size();i++)
        {
            if(v[i]==x2)
            count++;
        }
        for(i=0;i<v.size();i++)
        {
            if(k>=1&&v[i]==x2&&f1==1)
            {
                k=k-1;
                count--;
                s=s-v[i];
                f1=0;
            }
            else if(k>=2)
            {
                k=k-2;
                s=s-v[i];
            }
        }
        
    }
    else
    {
        sort(v.rbegin(),v.rend());
        for(i=0;i<v.size();i++)
        {
            if(k>=2)
            {
                s=s-v[i];
                k=k-2;
            }
        }
    }
    cout<<s<<"\n";
}

}

no man should be 3

but it should be 3

codechef standards are deteriorating day by day. many like me would have wasted more then a hour on this question whose tastecase are so weak.

this condition can be handled ny the code in the later section.

how is it 3 ?

first we will remove first 2 bulb by cutting 2nd wire and with second last wire we will discoonect the last 2 bulb.

yes that give 10001. Then in order to disconnect every 0, you need 4 operations, no ?

I meant from this point 10001 you need to disconnect 4 times.

thanks

bro can u please clarify ur question.

The original string was 00000000 after performing 2 cuts 00/00000/00 we get this string. Then in the middle string we make any of them to be 1. Now our string becomes 00/11111/00, after this we start disconnecting our not satisfying 1’s those at index 4, 5, 6 considering it to 1 based indexing. so in order to disconnect 3 ones we need to disconnect 4 wires.

Is it like we are removing bulbs ? Not wires ? In disconnecting operation .

i agree