Pagini recente » Cod sursa (job #1876403) | Cod sursa (job #2647342) | Cod sursa (job #2178564) | Cod sursa (job #1330858) | Cod sursa (job #1873177)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
#define nmax 100003
long long n,v[nmax],lg[nmax],pz[nmax],maxa=-1,poz;;
void Read()
{
f>>n;
for(int i=1; i<=n; i++)
f>>v[i];
}
void subsir()
{
for(int i=0; i<=nmax; i++) lg[i]=pz[i]=0;
lg[n]=1;
pz[n]=-1;
for(int i=n-1; i>=1; i--)
{
lg[i]=1;
pz[i]=-1;
for(int j=i+1; j<=n; j++)
if(v[i]<v[j] && lg[i]<lg[j]+1)
{
lg[i]=lg[j]+1;
pz[i]=j;
}
if(lg[i]>maxa)
{
maxa=lg[i];
poz=i;
}
}
g<<maxa<<'\n';
while(poz!=-1)
{
g<<v[poz]<<" ";
poz=pz[poz];
}
}
int main()
{
Read();
subsir();
return 0;
}