Cod sursa(job #1955195)

Utilizator ana-maria.simiAna-Maria Simionescu ana-maria.simi Data 5 aprilie 2017 20:55:20
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,a[100001],L[100001],p[100001],i,j,maxim,k,nr;
int main()
{freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for(i=1; i<=n; i++)
    scanf("%d", &a[i]);
L[n]=1;
p[n]=n;
for(i=n-1; i>=1; i--)
{
    L[i]=1;
    p[i]=i;
    for(j=i+1; j<=n; j++)
    {
        if(L[j]>=L[i] && a[i]<a[j])
        {
            L[i]=L[j]+ 1;
            p[i]=j;
        }
    }
}
   for(i=1; i<=n; i++)
        if(maxim<L[i])
   {
       maxim=L[i];
       k=i;
   }
   printf("%d\n", maxim);
   while(p[k]!=k)
    {printf("%d ", a[k]);
    k=p[k];}
      printf("%d ", a[k]);

    return 0;
}