Cod sursa(job #1413660)
Utilizator | Silas Daniel danysilas23 | Data | 2 aprilie 2015 00:08:13 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include<fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int main()
{
long n,lung[100000],a[100000],maxim=-1;
int i,j;
cin>>n;
for(i=1;i<=n;++i)
cin>>a[i];
for(i=n;i>=1;--i){
lung[i]=1;
for( j=n;j>i;--j )
{
if( a[i] < a[j] && lung[i] <1 + lung[j] )
lung[i]=lung[j]+1;
}
if(lung[i]>maxim)
maxim=lung[i];
}
cout<<maxim<<"\n";
for(i=1;i<=n;++i)
if(lung[i]==maxim)
{
cout<<a[i]<<" ";
maxim--;
}
return 0;
}