Cod sursa(job #897276)

Utilizator aciobanusebiCiobanu Sebastian aciobanusebi Data 27 februarie 2013 19:43:28
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
using namespace std;
int l[100000],v[100000];
long n;
ifstream f("scmax.in");
ofstream g("scmax.out");
void citire()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
}
int main()
{
    int max,M=0,poz=1;
    citire();
    l[n]=1;
    for(int i=n-1;i>=1;i--)
        {
            max=0;
            for(int k=i+1;k<=n;k++)
                if(v[i]<v[k]&&l[k]>max)
                    max=l[k];
            l[i]=max+1;
            if(l[i]>M)
                {
                    M=l[i];
                    poz=i;
                }
        }
    g<<M<<'\n';
    g<<v[poz]<<' ';
    int x=1;
    for(int i=poz+1;i<=n;i++)
        if(v[poz]<v[i]&&l[i]==M-x)
            {
                g<<v[i]<<' ';
                x++;
            }
    return 0;
}