Pagini recente » Cod sursa (job #1074190) | Cod sursa (job #2566195) | Cod sursa (job #66323) | Cod sursa (job #2541834) | Cod sursa (job #2507103)
#include <fstream>
#include <algorithm>
#include<stack>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,j,n,v[100001],v2[100001],mx,tati[100001],nod;
stack<int>s;
int main()
{f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
{
v2[i]=1;mx=0;
for(j=i-1;j>=1;j--)
{
if(v[i]>v[j])
{
if(mx<v2[j]+1)
{
v2[i]=v2[j]+1;
mx=v2[i];
tati[i]=j;
}
}
}
}
g<<*max_element(v2+1,v2+n+1)<<endl;
mx=-1;
for(i=1;i<=n;i++)
if(v2[i]>mx)
{
mx=v2[i];
nod=i;
}
while(nod!=tati[nod])
{
s.push(v[nod]);
nod=tati[nod];
}
while(!s.empty())
{
g<<s.top()<<" ";
s.pop();
}
return 0;
}