Cod sursa(job #1529876)
Utilizator | Data | 21 noiembrie 2015 11:30:56 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.7 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100],l[100],u[100];
int main()
{
int n,mx=-1;
f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
l[1]=1;
for(int i=2;i<=n;i++){
int cmx=0;
for(int j=1;j<i;j++){
if(a[i]>a[j])
cmx=max(l[j],cmx);
}
l[i]=cmx+1;
mx=max(mx,l[i]);
}
g<<mx;
int cmx;
cmx=mx;
int x=1;
for(int i=n;i>0;i--){
if(l[i]==cmx){
u[i]=1;
cmx--;
}
}
g<<endl;
for(int i=1;i<=n;i++)
if(u[i])
g<<a[i]<<' ';
return 0;
}