Pagini recente » Cod sursa (job #2593487) | Cod sursa (job #786546) | Cod sursa (job #1594090) | Cod sursa (job #1292643) | Cod sursa (job #694166)
Cod sursa(job #694166)
#include <fstream>
using namespace std;
int n, a[100001], i, j, v[100001];
ifstream in("scmax.in");
ofstream out("scmax.out");
void citire()
{
in>>n;
for(i=1; i<=n; i++)
in>>a[i];
}
void dinamica()
{
for(i=n; i>=1; i--)
{
int max=0;
for(j=i+1; j<=n; j++)
if(max<v[j] && a[i]<a[j])
max=v[j];
v[i]=max+1;
}
int max=0;
for(i=1; i<=n; i++)
if(max<v[i])
max=v[i], j=i;
out<<max<<'\n'<<a[j]<<' ';
for(i=1; i<=n; i++)
if(max==v[i]+1 && a[j]<a[i])
{
out<<a[i]<<' ';
j=i;
max=v[i];
}
}
int main()
{
citire();
dinamica();
return 0;
}