https://www.codechef.com/BITM2021

https://www.codechef.com/BITM2021/problems/HBOB02

Problem link

My solution

https://www.codechef.com/viewsolution/42134323

Really cant figure out whats wrong in my solution

.Please help

Thanks in advance !1

https://www.codechef.com/BITM2021

https://www.codechef.com/BITM2021/problems/HBOB02

Problem link

My solution

https://www.codechef.com/viewsolution/42134323

Really cant figure out whats wrong in my solution

.Please help

Thanks in advance !1

my solution is also same I am getting wrong answer

one more thing -> Is these problems are availabe for practice???

nope not yet but I dont think so they will be available but I guess u should tag the problem setter here maybe he might add them here

Heres my solution:

#include<bits/stdc++.h>

using namespace std;

const int N = 1e6;

long arr[N];

int main() {

```
int n, k;
cin>>n>>k;
int ele = 0;
for(int i = 0; i < n; i++) {
cin>>arr[i];
}
long x = arr[0], a;
for(int i = 1; i < n; i++) {
a = arr[i];
arr[i] ^= x;
x = a;
}
```

// for(auto x: arr) cout<<x;

```
for(int i = 0; i < n; i++) {
if((arr[i] >> (k - 1)) & 1)
ele++;
}
cout<<ele;
```

}

can someone point out where i have done mistake

Thanks in Advance !

#include <bits/stdc++.h>

#define ll long long int

using namespace std;

ll kth(ll n, ll k)

{

if ((n >> (k - 1)) & 1)

return 1;

else

return 0;

}

int main() {

// your code goes here

```
ll n,k;
cin>>n>>k;
ll a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
ll c=0;
for(int i=1;i<n;i++)
{
ll x=(a[i]^a[i-1]);
// cout<<x<<" ";
if(kth(x,k)==1)
{
c++;
}
}
if(kth(a[0],k)==1)
c++;
cout<<c;
return 0;
```

}

Just use `1LL<<k`

instead of `1<<k`

2 Likes

Creating Local array gives Wrong ans declare

global array with size greater than1000000

but it should be slightly greater

then try

This Worked for me

Create global array and then try

1 Like

Oh this is the **great** problem

How I wish if somebody could explain why this happened.

In case you do not understand the solution,

I took all inputs first, in a list

Then I assigned n as the first element of my list.

Then I checked if size of list=n+2, because that’s what the problem says right?

Oh, now how will I check that? I decided to run an infinite loop, in case size \neq n+2

And what do I find? My code TLEd

So, after countless wrong constraints, wrong inputs, now we have no inputs.

PS- this is what I did to get AC: in case I found this gibberish, I increment ans by 1, and behold, I have the green tick.

Update/Edit : All problems are moved to practice section, you can submit your solutions now

CodeChef take some time to move contest problems, to practice section. So once the problems are moved to practice section you can submit the solutions to it. It may take some more time as this is the task that codechef will do @admin @nehak_21 plz look into it.

Hope you liked this contest and are waiting for our next month’s contest

no we didn’t

Yes questions were good

Thanks for your great support man

Do suggest the improvements for us so that we can improve upon it, and can do better from next time

The ones getting wrong answers using array make ur array global

u will get AC

Below given solution worked for me, but I wonder why this happened, Please let me know what is the reason local array doesn’t work, also **1LL** is required as someone pointed out, isn’t 1 supposed to typecast to **LL** by default

```
bool CheckKthBit(ll a,ll k){
return (a&(1LL<<(k-1)));
}
ll const HelpBob_N = 1000005;
ll Help_bob_array[HelpBob_N];
void HelpBob(){
int n,k;
cin>>n>>k;
for(int i =0;i<n;i++){
cin>>Help_bob_array[i];
}
ll ans = CheckKthBit(Help_bob_array[0],k);
for(int i=1;i<n;i++){
if(CheckKthBit((Help_bob_array[i]^Help_bob_array[i-1]),k)) ans+=1;
}
cout<<ans;
}
```

No, in C, Integer Constants are implicitly interpreted as int. If you want to make it interpret as Long or Long Long, you must include the suffix L or LL. Here’s the link where you can get detailed info about Integer Constants.