Pagini recente » Cod sursa (job #3210078) | Cod sursa (job #332518) | Cod sursa (job #18010) | Cod sursa (job #350187) | Cod sursa (job #1298179)
#include<fstream>
#include<iostream>
using namespace std;
long n,a[100003],b[100003],m,s=0,po[100003],p,i,j;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
b[n]=1;
po[n]=-1;
m=1;
p=n;
for(i=n-1;i>=1;i--)
{
b[i]=1;
po[i]=-1;
for(j=i+1;j<=n;++j)
if(a[i]<a[j]&&b[i]<b[j]+1)
{
b[i]=b[j]+1;
po[i]=j;
if(b[i]>m)
{
m=b[i];
p=i;
}
}
}
g<<m<<"\n";
i=p;
while(i!=-1)
{
g<<a[i]<<" ";
i=po[i];
}
f.close();
g.close();
return 0;
}