Cod sursa(job #1111081)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 18 februarie 2014 16:57:38
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
using namespace std;
int lis[100001]; int v[100001];
int n,i,j,k,max,z;
int lungime(int a)
{
    int i,max;
    if(a!=0)
    {
        if(v[a]>v[a+1]) {lis[a]=1;return lungime(a-1);}
    else if(v[a]<v[a+1])
    {
        max=0;
        for(i=a+1;i<=n;i++) if(lis[i]>max&&v[i]>v[a]) max=lis[i];
        lis[a]=1+max;
        return lungime(a-1);
    }
    else return lungime(a-1);
    }
    else return 0;
}
int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    lis[n]=1;
    for(i=1;i<=n;i++) scanf("%d",&v[i]);
    lungime(n-1);
    max=0;
    for(i=1;i<=n;i++) if(lis[i]>max) max=lis[i];
    printf("%d",max);
}