Cod sursa(job #1645025)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 10 martie 2016 10:43:43
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;
int n, i, j, L[100003], T[100003], sol[100003], v[100003], t, maxim, poz1, poz2, nr;
int main()
{
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    for(i=1;i<=n;i++){
        maxim=0;
        for(j=i-1;j>=0;j--){
            if(v[j]<v[i])
                if(L[j]>maxim){
                    maxim=L[j];
                    T[i]=j;
                }
        L[i]=maxim+1;
        }
    }
    maxim=0;
    for(i=1;i<=n;i++){
        if(L[i]>maxim){
            maxim=L[i];
            poz2=i;
        }
    }
    i=poz2;
    sol[++nr]=poz2;
    while(i!=0){
        sol[++nr]=T[i];
        i=T[i];
    }
    nr--;
    fout<<nr<<"\n";
    for(i=nr;i>=1;i--)
        fout<<v[sol[i]]<<" ";
    return 0;
}