Pagini recente » Cod sursa (job #2987444) | Cod sursa (job #3031492) | Borderou de evaluare (job #1036017) | Cod sursa (job #1247821) | Cod sursa (job #346007)
Cod sursa(job #346007)
#include<fstream>
using namespace std;
int a[100001],i,j,n,best[100001]={1},prev[100001],scrmax[100001];
int main()
{ifstream in("scmax.in");
ofstream out("scmax.out");
in>>n;
for(int i=1;i<=n;i++) in>>a[i];
memset(best,1,n);
best[1]=1;prev[1]=0;
int max=1,poz=1;
for(int i=2;i<=n;i++) {for(int j=1;j<i;j++) if(a[j]<a[i] && best[i]<best[j]+1) {best[i]=best[j]+1;prev[i]=j;}
if(max<best[i]) {max=best[i]; poz=i;}}
out<<max+1<<'\n';
for(int i=1;i<=max+1;i++)
{scrmax[i]=a[poz];poz=prev[poz];}
for(int i=max+1;i>0;i--)
{out<<scrmax[i]<<" ";}
return 0;}