Pagini recente » Cod sursa (job #850709) | Cod sursa (job #2609776) | Cod sursa (job #265012) | Cod sursa (job #2841203) | Cod sursa (job #520572)
Cod sursa(job #520572)
#include <fstream.h>
int a[100001],L[100001],u[100001],n;
void citire()
{int i;
ifstream f("scmax.in");
f>>n; for(i=1;i<=n;i++)f>>a[i];
f.close();
}
int main()
{int i,j,max,im;
citire();
L[n]=1;
u[n]=0;
for(i=n-1;i>=1;i--)
{max=0;im=0;
for(j=i+1;j<=n;j++)
if(a[i]<a[j] && L[j]>max)
{max=L[j];
im=j;
}
L[i]=max+1;
u[i]=im;
}
// Determin lungimea subsirului maxim
max=L[1];im=1;
for(i=2;i<=n;i++)
if(L[i]>max){max=L[i];
im=i;
}
ofstream g("scmax.out");
g<<max<<'\n';
do{g<<a[im]<<' ';
im=u[im];
}while(im!=0);
g<<'\n';
return 0;
}