Pagini recente » Cod sursa (job #2551882) | Cod sursa (job #3269466) | Cod sursa (job #3160922) | Cod sursa (job #2821078) | Cod sursa (job #1131037)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int N,i,j,lmax,ok,pornire;
int a[100000],l[100000],poz[100000];
int main()
{
fin>>N;
for(i=1;i<=N;i++)
fin>>a[i];
l[N]=1;
poz[N]=0;
for(j=N-1;j>=1;j--)
{
ok=1;
for(i=j+1;i<=N&& ok==1;i++)
{
if(a[j]>=a[i])
i++;
else
{
if(l[j+1]!=0)
{l[j]=l[i]+1;
poz[j]=i;
ok=0;}
else
{
l[j]=l[i+1]+1;
poz[j]=i+1;
ok=0;
}
}
}
if(l[j]>lmax)
{lmax=l[j];
pornire=j;
}
}
fout<<lmax<<" ";
fout<<endl;
fout<<a[pornire]<<" ";
for(i=pornire;i<=N;i++)
{
if(poz[i]!=0)
fout<<a[poz[i]]<<" ";
}
return 0;
}