Cod sursa(job #1714660)

Utilizator leraValeria lera Data 8 iunie 2016 22:59:56
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,maxx=0,v[100001],a[100001],t[100001],pre[100001];
int main()
{
    int i,j,nr;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
    for(i=1;i<=n;i++)
    {
        v[i]=1;
        pre[i]=0;
        for(j=1;j<i;j++)
          if(a[i]>a[j] && v[i]<(v[j]+1))
                {
                    pre[i]=j;
                    v[i]=v[j]+1;
                }
        if(v[i]>maxx)
            {
                maxx=v[i];
                t[v[i]]=a[i];
                j=i;
                while(j>0)
                {
                    t[v[pre[j]]]=a[pre[j]];
                    j=pre[j];
                }
            }
    }

    fout<<maxx<<'\n';
    for(i=1;i<=maxx;i++)
       fout<<t[i]<<" ";

    return 0;
}