Cod sursa(job #1765338)

Utilizator LizaSzabo Liza Liza Data 26 septembrie 2016 17:35:50
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;
ifstream f1("scmax.in");
ofstream f2("scmax.out");

 int i,j,n,x[100005],DP[100005],Succ[100005],sol,k,l,maxx;
void cit(){
f1>>n;
for(i=1;i<=n;i++){

    f1>>x[i];
}
}


void rez(){
for (i=n;i>=1;i--){
    for(j=i+1;j<=n;j++){
        if(x[i]<x[j]&&DP[j]>DP[i]){
            DP[i]=DP[j];
            Succ[i] = j;
        }
    }
        DP[i]++;

}
sol=1;
for(i=1;i<=n;i++)
{
    if (DP[i]>sol)
        {l=i;};
    sol=max(sol,DP[i]);
}

f2<<sol<<'\n';

int i = l;
while(i)
{
    f2<<x[i]<<" ";
    i = Succ[i];
}

}

int main()
{
    cit();
rez();
    return 0;
}