Cod sursa(job #1239216)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 8 octombrie 2014 16:22:27
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
int v[1000], l[1000], i, k, t, max1, n;
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    f>>n;
    for (i=1; i<=n; i++)
        f>>v[i];
    l[n]=1;
    for (k=n-1; k>=1; --k)
    {
        max1=0;
        for (i=k+1; i<=n; i++)
            if (v[i]>v[k]&&l[i]>max1)
                max1=l[i];
        l[k]=max1+1;
    }
    max1=l[1];
    t=0;
    for (i=1; i<=n; i++)
        if (l[i]>max1)
        {
            max1=l[i];
            t=i;
        }
    g<<max1<<"\n"<<v[t]<<" ";
    for (i=t+1; i<=n; i++)
        if (v[t]<v[i]&&l[i]==max1-1)
        {
            g<<v[i]<<" ";
            max1--;
        }
    return 0;
}