Cod sursa(job #681625)

Utilizator iuli1505Parasca Iuliana iuli1505 Data 17 februarie 2012 16:03:11
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<cstdio> 
using namespace std; 

int n, a[100001],l[100001],poz[100001]; 
int main() 
{ 
	freopen("scmax.in","r",stdin); 
	freopen("scmax.out","w",stdout); 
    int i,j,max,pmax; 
    scanf("%d",&n); 
    for(i=1;i<=n;i++) 
        scanf("%d",&a[i]); 
    l[n]=1; 
    poz[n]=-1; 
    for(i=n-1;i>0;i--) 
        for(l[i]=1, poz[i]=-1, j=i+1; j<=n; j++) 
            if(a[i]<a[j] && l[i]<1+l[j]) 
            { 
                l[i]=1+l[j]; 
                poz[i]=j; 
            } 
    max=l[1]; 
    pmax=1; 
    for(i=2;i<=n;i++) 
        if(max<l[i]) 
        { 
            max=l[i]; 
            pmax=i; 
        }     
	printf("%d\n", max);
    for(i=pmax; i!=-1; i=poz[i]) 
        printf("%d ", a[i]); 
    return 0; 
}