Pagini recente » Cod sursa (job #2317362) | Cod sursa (job #2890351) | Cod sursa (job #3224442) | Cod sursa (job #1679739) | Cod sursa (job #1980259)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{int n,v[100002],lung[100002],next[100002],i,lmax=1,j,l,ic;
fin>>n;
for(i=1; i<=n; i++)
{
fin>>v[i];
}
lung[0]=0;
lung[1]=v[n];
l=1;
for(i=n-1; i>=1; i--)
{
next[i]=0;
j=1;
while(j<=l&&v[i]<lung[j])
{
j++;
}
if(j>l)
{
lung[++l]=v[i];
next[i]=lung[l-1];
}
else
{
lung[j]=v[i];
next[i]=lung[j-1];
}
}
/*cout<<l<<'\n'<<lung[l]<<' ';
i=l-1;
do
{
cout<<v[i]<<' ';
i=next[i];
}while(v[i]);
/*for(i=1; i<=n; i++)
{
cout<<next[i]<<' ';
}*/
fout<<l<<'\n';
for(i=l; i>0; i--)
{
fout<<lung[l]<<' ';
}
return 0;
}