Pagini recente » Cod sursa (job #2544410) | Cod sursa (job #1411826) | Cod sursa (job #3234681) | Cod sursa (job #3187277) | Cod sursa (job #2046515)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int mxt,n,v[100001],w[100001],e[100001];
int main()
{
f>>n;
f>>v[1];
w[1]=1;
for (int i=2; i<=n; ++i)
{
f>>v[i];
int mx=0;
for (int j=1; j<i; ++j)
{
if (v[i]>v[j]&&w[j]>mx)
mx=w[j];
}
w[i]=mx+1;
if (w[i]>w[mxt])
mxt=i;
}
int nr=w[mxt];
e[w[mxt]]=v[mxt];
for (int i=mxt-1;i>0;--i)
{
while (v[i]>v[mxt]||w[i]!=w[mxt]-1)
--i;
mxt=i;
e[w[mxt]]=v[mxt];
}
g<<nr<<'\n';
for (int i=1;i<=nr;++i)
g<<e[i]<<' ';
return 0;
}