Pagini recente » Cod sursa (job #259084) | Cod sursa (job #2971824) | Cod sursa (job #275512) | Cod sursa (job #684620) | Cod sursa (job #1636929)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long v[1000001],l[100001],i,j,n,poz,Max,Max2,poz2,sclm[100001],cmax,k;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
l[1]=1;
for(i=2;i<=n;i++)
{Max=0;Max2=-1;
for(j=1;j<i;j++)
if(v[j]>Max)
{
Max=v[j];poz=j;
}
if(v[i]>Max)
l[i]=l[poz]+1;
else
{for(j=0;j<i;j++)
if(v[j]>=Max2 && v[j]<v[i])
{
Max2=v[j];poz2=j;
}
l[i]=l[poz2]+1;}
}
Max=0;
for(i=1;i<=n;i++)
if(l[i]>Max)
{Max=l[i];poz=i;}
fout<<Max<<endl;
for(i=1;i<=n;i++)
cmax=Max;
k=cmax;
while(cmax)
{Max=1000000;
for(j=poz;j>=1;j--)
if(l[j]==cmax && v[j]<Max)
{sclm[cmax]=v[j];Max=v[j];cmax--;}
}
for(i=1;i<=k;i++)
fout<<sclm[i]<<" ";
return 0;
}