if(kk>=0 && kk<=n-1) { // you wrap the condition i == 0 and i == n - 1 inside this if, which will cause issue, better seperate into three conditions (i == 0, i == n - 1) and else 0 < i < n - 1, as you can see the fixed code
if(s[kk]==‘0’)
s[kk] = ‘1’;
else
s[kk] = ‘0’;
if(kk==0){
if(s[kk]==s[kk+1]) dis+=1;
else dis-=1;
cout<<dis<<endl;
continue;
}
if(kk==n-1){
if(s[kk]==s[kk-1]) dis+=1;
else dis-=1;
cout<<dis<<endl;
continue;
}
if(s[kk]==s[kk-1]){
dis+=1;
}else{
dis-=1;
}
if(s[kk]==s[kk+1]){
dis+=1;
}else{
dis-=1;
}
cout<<dis<<"\n";
}
at least failed this edge case when string length is 1
1
1 3
0
1 1 1
Hey, thanks for your help, there are some points, that I found right now:
I shifted all my code within while loop into a function and called this function into while loop and now it works.
2.So, the logic is correct and there must be no issue within any conditionals.
3. I think 0 0 0 is not an issue, because my accepted solution gives o/p 0 0 0 for this test case.
4.What can be the possible issue with this…
Well, I got the issue, In my solution, in the condition if(n==1) : I was using return, instead I had to use continue there.
Replacing that return with continue got it AC.
Can someone please find the error its giving rutime error .why? @darshancool25
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main()
{
int t;
cin>>t;
while(t–)
{
ll n,k;
cin>>n>>k;
string s ;
cin>>s;
int main() {
// your code goes here
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin>>t;
while(t–){
long long int n,k;
cin>>n>>k;
if(n==1){
cout<<“0”<<"\n";
continue;
}
string s;
cin>>s;
long long int sum=0;
for(long long int i=0;i<=n-2;i++){
if(s[i]!=s[i+1])
sum=sum+1;
else
sum=sum+2;
}
for(long long int i=0;i<k;i++){
long long int a;
cin>>a;
if(a==1){
if(s[0]==s[1])
sum=sum-1;
else
sum=sum+1;
}
else if(a==n){
if(s[n-2]==s[n-1])
sum=sum-1;
else
sum=sum+1;
}
else{
if(s[a-1]==s[a-2])
sum=sum-1;
else
sum=sum+1;
if(s[a-1]==s[a])
sum=sum-1;
else
sum=sum+1;
}
if(s[a-1]=='0')
s[a-1]='1';
else
s[a-1]='0';
cout<<sum<<"\n";
}
}
return 0;
}
Can somebody tell me what is wrong with this code on submission?
https://www.codechef.com/viewsolution/47308647
GUYS please help me find out mistake ,i have tried a lot but still not getting whats wrong .
I have checked almost all cases including n=1 and getting correct answer , but still WA .Please help me out
Type cast s.size() to int OR just define a variable int sz = s.size() and use sz everywhere. You were getting runtime error as generally .size() returns an unsigned int value
@darshancool25 Thankyou so so much it finally worked…I am happy because after a lot of attempts i got it and also I watched your video before the code part so that I can attempt from myself.
It feels really nice if we did from ourselves.
One thing that’s bad for performance: IsSame and Score both take strings by value instead of by reference, causing the passed string to be copied each time they are called.