Cod sursa(job #485360)

Utilizator bogfodorBogdan Fodor bogfodor Data 18 septembrie 2010 10:36:01
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>

using namespace std;

int a[100],l[100],p[100],n;

void citire(){
    scanf("%d\n", &n);
    for(int i=0;i<n;i++)
        scanf("%d", &a[i]);
}

int main()
{
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    for(int w=0;w<10;w++){
    citire();
    p[n-1]=-1;
    l[n-1]=1;
    for(int i=n-2;i>=0;i--)
        for(int j=i+1;j<n;j++){
            if(a[i]<a[j]){
                if(l[i]<l[j]+1){
                    l[i]=l[j]+1;
                    p[i]=j;
                }
            }
        }
    int max=0,pos=0;
    for(int i=0;i<n;i++)
        if(l[i]>max){
            max=l[i];
            pos=i;
        }

    printf("%d\n", max);
    for(int i=pos;i!=-1;){
        printf("%d ",a[i]);
        i=p[i];
    }
    printf("\n");
    for(int i=0;i<n;i++){
        l[i]=0;
        p[i]=0;
    }
    }
    return 0;
}