Pagini recente » Cod sursa (job #882857) | Cod sursa (job #2036980) | Cod sursa (job #1035172) | Cod sursa (job #840760) | Cod sursa (job #2164842)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100002],lmax,LMAX,imax,jmax,l[100002],pre[100002];
void afis(int i)
{
g<<v[i]<<' ';
if(pre[i]!=0) afis(pre[i]);
}
int main()
{
int i,j;
f>>n;
for(i=1;i<=n;i++) f>>v[i];
l[n]=1;
pre[n]=0;
for(i=n-1;i>=1;i--)
{
lmax=0;
for(j=i+1;j<=n;j++)
{
if(l[j]>lmax && v[j]>v[i]) {
lmax=l[j];
jmax=j;
}
if(lmax>0) {l[i]=lmax+1; pre[i]=jmax;}
else {l[i]=1;pre[i]=0;}
if(l[i]>LMAX){
LMAX=l[i];
imax=i;
}
}
}
g<<LMAX<<'\n';
afis(imax);
g<<'\n';
f.close();
g.close();
return 0;
}