Что не так с моим кодом при нахождении длины максимального битового подмассива

#c

#c

Вопрос:

Используемая логика проста, если встречается триплет x, y, z такой, что x> y<z затем присваивает длину массива m и продолжается, и это дает правильный результат во всех тестовых примерах, которые я могу придумать

 #include<iostream>
#include<algorithm>
using namespace std;
int main() 
{
 int t;
 cin>>t;
 while(t--)
 {
     int n;
     cin>>n;
     int a[n];
     for(int i=0;i<n;i  )
     {
      cin>>a[i];
     }
     int l=0;
     int m=0;
     for(int i=0;i<n;i  )
     {
         l  ;
         if(i>0amp;amp;i<n-1)
         {
         if(a[i]<a[i-1]amp;amp;a[i]<a[i 1])
         {
             l=1;
         }
         }
         if(m<l)
         m=l;
     }
     if(m)
     cout<<m<<endl;
     else 
     cout<<l<<endl;
 }
    return 0;
}
  

Комментарии:

1. int n; int a[n]; недопустимо c . Вместо этого используйте вектор.

2. MBS также может начинаться как x < y > z слишком отличающийся от x > y < z . Это тот случай, который вы упустили.