Cod sursa(job #1366597)

Utilizator witselWitsel Andrei witsel Data 1 martie 2015 12:00:21
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int nmax=100001;
int n,a[nmax],best[nmax];


void subsir2()
{
    ifstream fin("scmax.in");
    fin>>n;
    vector<int> vec[n+1];
    for(int i=1;i<=n;++i)
        {fin>>a[i];
        vec[i].push_back(i);
        }

    ofstream fout("scmax.out");
    int bmax=0;
    for(int i=1;i<=n;++i)
        best[i]=1;
    for(int i=n-1;i>=1;--i)
        for(int j=i+1;j<=n;++j)
            if(a[i]<a[j] && best[i]<=best[j])
                {
                    best[i]=best[j]+1;
                    vec[i]=vec[j];
                    vec[i].push_back(i);
                }
    for(int i=1;i<=n;++i)
        if(best[bmax]<best[i])
            bmax=i;
    fout<<best[bmax]<<"\n";
    for(int i=vec[bmax].size()-1;i>=0;--i)
        fout<<a[vec[bmax][i]]<<" ";

}
int main()
{

    subsir2();
    return 0;
}