Programare Dinamica
Programare Dinamica
#include <fstream>
using namespace std;
ifstream cin("sclm2.in");
ofstream cout("sclm2.out");
long long a[100001], b[100001],n,max,maxs;
void cmp(int x)
{
int max=0;
for(int i=x+1;i<=n;i++)
{
if (a[x]<a[i])
if (b[i]>max)
{
max=b[i];
b[x]=max+1;
}
}
if (b[x]==0)
b[x]++;
if(b[x]>maxs)
maxs=b[x];
}
int main()
{
cin>>n;
for (int i=1;i<=n;i++)
cin>>a[i];
b[n]=1;
for (int i=n-1;i>0;i--)
cmp(i);
cout<<maxs;
}