Cod sursa(job #1887479)

Utilizator MolnarMalinaMalina MolnarMalina Data 21 februarie 2017 16:57:19
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int main()
{
    int v[100005], l[100005];
    int i,k,maxim,n,t;
    fi>>n;
    for(i=1; i<=n; i++)
        fi>>v[i];
    l[n]=0;
    for(k=n; k>=1; k--)
    {
        maxim=0;
        for(i=k+1; i<=n; i++)
        {
            if(v[i]>v[k] && l[i]>maxim)
                maxim=l[i];
            l[k]=1+maxim;
        }
    }
    maxim=0;
    for(i=1; i<=n; i++)
        if(l[i]>maxim)
    {
        maxim=l[i];
        t=i;
    }
    fo<<maxim<<"\n";
    fo<<v[t]<<" ";
    for(i=t+1; i<=n; i++)
        if(v[i]>v[t] && l[i]==maxim-1)
    {
        fo<<v[i]<<" ";
        maxim--;
    }
    fi.close();
    fo.close();
}