Cod sursa(job #671904)
Utilizator | Aiordachioaei Marius Flameingo | Data | 1 februarie 2012 07:19:25 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<fstream>
using namespace std;
int main()
{
ifstream cin("scmax.in");ofstream cout("scmax.out");
int lis[100001],i,n,m,k=1,x[100001],v[100001],j;
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
lis[n]=1;
for(i=n-1;i>=1;i--)
{
m=0;
for(j=i+1;j<=n;j++)
if(m<lis[j]&&x[i]<x[j])
{
m=lis[j];
}
lis[i]=m+1;
if(lis[i]>lis[i-1])
v[k]=x[i];
k++;
}
m=lis[1];
for(i=2;i<=n;i++)
if(m<lis[i])
m=lis[i];
cout<<m<<"\n";
for(i=1;i<=k;i++)
cout<<v[i]<<" ";
}