Cod sursa(job #1754001)

Utilizator giotoPopescu Ioan gioto Data 7 septembrie 2016 14:00:32
Problema Secv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#define max(a,b) (a>b)?a:b
using namespace std;

int n,sol[5002],a[5002],l[5002];
int main()
{
    freopen("secv.in","r", stdin);
    freopen("secv.out","w", stdout);
    scanf("%d", &n);
    for(int i=1;i<=n;++i){
        scanf("%d", &a[i]);
        sol[i]=i;l[i]=1;
    }int Max=2;
    for(int i=1;i<=n;++i){
        for(int j=i+1;j<=n;++j){
            if(a[i]<a[j])
                if(l[i]+1>l[j])
                    l[j]=l[i]+1,sol[j]=sol[i];
                else if(l[i]+1==l[j])
                    sol[j]=sol[i];
        }
        if(l[i]>Max)
            Max=l[i];
    }int solutie=-1;
    for(int i=1;i<=n;++i)
        if(l[i]==Max)
            solutie=max(solutie,i-sol[i]+1);
    printf("%d", solutie);
    return 0;
}