KSEQ1 - Dãy số 1
Tác giả: flashmt
Ngôn ngữ: C++
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int a[333],n,ans,f[333][333];
int main()
{
cin >> n;
for (int i=1;i<=n;i++) cin >> a[i];
for (int i=2;i+ans<=n;i++)
{
memset(f,0,sizeof(f));
for (int j=1;j<i;j++)
for (int k=i;k<=n;k++)
{
f[j][k]=max(f[j-1][k],f[j][k-1]);
if (a[j]<a[k])
f[j][k]=max(f[j][k],f[j-1][k-1]+1);
}
ans=max(ans,f[i-1][n]);
}
cout << ans << endl;
}