Pagini recente » Cod sursa (job #2470048) | Istoria paginii runda/iiiiiiiiii | Cod sursa (job #263) | Cod sursa (job #392664) | Cod sursa (job #1905966)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
int a[100006], o[100006], n;
int main()
{
int maxi=0, p, p2;
fin >> n;
for(int i=1;i<=n;i++)
{
fin >> a[i];
}
o[n]=1;
for(int i=n-1;i>=1;i--)
{
maxi=0;
for(int j=i+1;j<=n;j++)
{
if(o[j]>o[i] && a[j]>a[i])
{
maxi=max(maxi, o[j]);
}
}
o[i]=1+maxi;
}
/*for(int i=1;i<=n;i++)
cout << o[i] << " ";*/
maxi=0;
for(int i=1;i<=n;i++)
{
if(o[i]>maxi)
{
maxi=o[i];
p=i;
}
}
fout << maxi << '\n';
fout << a[p] << " ";
p2=p;
for(int i=p+1;i<=n;i++)
{
if(o[i]==o[p2]-1)
{
fout << a[i] << " ";
p2=i;
}
}
return 0;
}