Problem u zadatku Najduzi rastuci podniz

U zadatku najduzi rastuci podniz, samo mi jedan test primer ne radi, ali mi nije jasno zasto, ovo je moj kod:

#include

using namespace std;

int main()
{
int n,maks=1;
cin >> n;
int a[n],m[n];
for(int i=0;i<n;i++)
{
cin >> a[i];
m[i]=1;
}
int k;
for(int i=1;i<n;i++)
{
// cout<<“a[i]:”<<a[i]<<endl;
if(a[i]>a[i-1])
{
m[i]+=m[i-1];
}
else
{
k=i-1;
while((a[i]<a[k] && k>=0)||(a[i]<a[k] && m[k]!=maks))
{
k–;

  	}
  //	cout<<"k: "<<k<<endl;
  //	cout<<"m[k]: "<<m[k]<<endl;
  	if(k==0 || a[i]==a[k])
  	{
  		if(a[i]>a[0])
  		m[i]=2;
  		else m[i]=1;
  	}
  	else
  	{
  		m[i]+=m[k];
  		
  	}
  }
  if(m[i]>maks) maks=m[i];

// cout<<“m[i]:”<<m[i]<<endl;
}

cout << maks;
}