Pagini recente » Cod sursa (job #384570) | Cod sursa (job #200511) | Cod sursa (job #972628) | Cod sursa (job #1285202) | Cod sursa (job #2182021)
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int i, poz,n,v[100001],b[100001],r[100001],p,maxx;
int constr(int poz)
{int maxi=0;
if(poz==1)return 1;
for(i=1;i<poz;i++)
if(v[i]<v[poz]&&b[i]>maxi)
maxi=b[i];
return maxi+1;
}
int main()
{int maxi=0;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
for(i=1;i<=n;i++)
b[i]=constr(i);
for(i=1;i<=n;i++)
if(b[i]>maxi)
{maxi=b[i]; maxx=i;}
r[++p]=v[maxx];
int aux=maxx-1;
for(i=aux;i>=1;i--)
if(v[i]<v[maxx]&&b[i]==b[maxx]-1)
{maxx=i;r[++p]=v[i];}
out<<p<<'\n';
for(i=p;i>=1;i--)
out<<r[i]<<" ";
return 0;
}