Pagini recente » Cod sursa (job #70426) | Cod sursa (job #883777) | Cod sursa (job #2161597) | Cod sursa (job #3176224) | Cod sursa (job #2478896)
#include<fstream>
using namespace std;
ifstream f("scmax.in"); ofstream g("scmax.out");
int n,v[100003],lg[100003],p[100003],sol[100003];
int main()
{ f>>n;
for(int i=1;i<=n;++i) f>>v[i];
lg[1]=1; p[1]=1;
for(int i=2;i<=n;++i)
{ p[i]=i;
for(int j=i-1;j;--j)
if(v[j]<v[i] && lg[i]<lg[j]) {lg[i]=lg[j]; p[i]=j;}
lg[i]++;
}
int k=1;
for(int i=2;i<=n;++i)
if(lg[k]<lg[i]) k=i;
int m=lg[k];
g<<m<<'\n';
for(int i=1;i<=m;i++,k=p[k]) sol[m-i+1]=v[k];
for(int i=1;i<=m;i++) g<<sol[i]<<' ';
g.close(); return 0;
}