Pagini recente » Istoria paginii runda/yager | Cod sursa (job #1260987) | Cod sursa (job #3271497) | Cod sursa (job #1551563) | Cod sursa (job #686106)
Cod sursa(job #686106)
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100001],n;
int main()
{
int i,j,urm[100001],lg[100001],um,lgm,max;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
lg[n]=1;
urm[n]=0;
for(i=n-1;i>0;i--)
{
lgm=1;
um=0;
for(j=i+1;j<=n;j++)
if(a[i]<a[j] && lgm<=lg[j])
{
lgm=lg[j]+1;
um=j;
}
lg[i]=lgm;
urm[i]=um;
}
max=0;j=0;
for(i=1;i<=n;i++)
if(lg[i]>max)
{
max=lg[i];
j=i;
}
g<<max<<'\n';
g<<a[j];
j=urm[j];
while(j!=0)
{
g<<' '<<a[j];
j=urm[j];
}
f.close();
g.close();
return 0;
}