#include<bits/stdc++.h>
using namespace std;
int main() {
int t; cin >> t;
while(t > 0){
int n; cin >> n;
int arr[n];
for(int i = 0; i < n; i++)
cin >> arr[i];
int max_length = 1;
int curr_length = 1;
int i =1;
while(i < n){
if(arr[i] == arr[i-1]){
curr_length++;
if(max_length < curr_length)
curr_length = max_length;
}
else if(arr[i] > arr[i-1]){
curr_length++;
if(max_length <curr_length)
max_length = curr_length;
}
else if(arr[i] < arr[i-1]){
curr_length++;
if(max_length < curr_length)
max_length = curr_length;
if(i != n-1 && arr[i+1] > arr[i])
curr_length = 1;
}
i++;
}
cout<<max_length<<endl;
t--;
}
return 0;
}
Please tell me the flaw in my logic. I’ve tried it on a lot of test cases, still, only test case 0 is working. Any hint or resolution?