Pagini recente » Cod sursa (job #1558594) | Cod sursa (job #2454379) | Cod sursa (job #1338605) | Cod sursa (job #924164) | Cod sursa (job #2164836)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100002],lmax,LMAX,imax,jmax,l[100002],prev[100002];
void afis(int i)
{
g<<v[i]<<' ';
if(prev[i]!=0) afis(prev[i]);
}
int main()
{
int i,j;
f>>n;
for(i=1;i<=n;i++) f>>v[i];
l[n]=1;
prev[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; prev[i]=jmax;}
else {l[i]=1;prev[i]=0;}
if(l[i]>LMAX){
LMAX=l[i];
imax=i;
}
}
}
g<<LMAX<<'\n';
afis(imax);
g<<'\n';
f.close();
g.close();
return 0;
}