Cod sursa(job #1848280)

Utilizator lauratalaatlaura talaat lauratalaat Data 15 ianuarie 2017 18:36:05
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<stdio.h>
int v[100001],v2[100001],lung[100001];
int main(){
    int n,i,j,maxim,poz,max,cp;
    freopen("scmax.in","r",stdin);
    freopen("scmax.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    lung[1]=1;
    maxim=1;
    for(i=2;i<=n;i++){
        max=0;
        for(j=i-1;j>=1;j--)
            if(v[i]>v[j]&&lung[j]>max)
                max=lung[j];
        lung[i]=max+1;
        if(lung[i]>maxim){
            maxim=lung[i];
            poz=i;
        }
    }
    cp=maxim;
    printf("%d\n",maxim);
    v2[maxim]=v[poz];
    maxim--;
    j=i-1;
    while(maxim!=0){
        while(lung[j]!=maxim)
            j--;
        v2[maxim]=v[j];
        maxim--;
    }
    for(i=1;i<=cp;i++)
        printf("%d ",v2[i]);
    return 0;
}