Cod sursa(job #1972991)

Utilizator darisavuSavu Daria darisavu Data 24 aprilie 2017 10:26:41
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100005],v[100005],i,j,n,tata[100005],mx,k,mxx,p,sor[100005],z;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
    v[1]=1;
    tata[1]=v[1];
    for(i=2;i<=n;i++)
    {
        mx=1;
        tata[i]=i;
        for(j=i-1;j>=1;j--)
        {
            if(a[j]<a[i])
            {
                if(v[j]+1>mx)
                {
                    mx=v[j]+1;
                    k=j;
                }
            }
        }
        v[i]=mx;
        tata[i]=k;
        if(v[i]>mxx) {mxx=v[i];p=i;}
    }
    g<<mxx<<'\n';
    z++;
    sor[z]=a[p];
    while(z<=mxx)
    {
        z++;
        sor[z]=a[tata[p]];
        p=tata[p];
    }
    for(i=z-1;i>=1;i--) g<<sor[i]<<" ";
    return 0;
}