Can someone please tell me why my code is showing this type of undefined behavior
here is the first submission which is getting WA on test 2 (when submitted on c++17) & WA on test 5 (when submitted on c++20)
here is the accepted solution The only thing that I have changed here is
for(int i=0;i<n;i++){
cin>>arr[i];
mp1[arr[i]]++;
if(mp1[arr[i]]>=k){
s1.insert(arr[i]);
}
}
to
for(int i=0;i<n;i++){
cin>>arr[i];
mp1[arr[i]]++;
}
for(int i=0;i<n;i++){
if(mp1[arr[i]]>=k){
s1.insert(arr[i]);
}
}
comparing your both submission using codeforces' compare feature shows that you changed the upper limit of the for loop in maxiConsecutiveSubarray method
You are right but thats not the cause if i change my for loop in maxiConsecutiveSubarray like that of my last submission its still giving me ac, link to submission, So it's not the main culprit here
The reason for the UB is 'out of bounds' on the line 40. Change j < N to j + 1 < N
nope ,see this submission its getting wa
but it's still j < N in your submission... If you change it to j + 1 < N it's AC https://mirror.codeforces.com/contest/1676/submission/156746090
You are right, my bad and thanks for help