Pagini recente » Cod sursa (job #1415719) | Cod sursa (job #2767932) | Cod sursa (job #2196554) | Cod sursa (job #1162479) | Cod sursa (job #3211744)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
const int dim=1000001;
int a[dim],bst[dim],pred[dim];
void afisare(int p)
{
if(p==-1){
return;
}
afisare(pred[p]);
fout<<a[p]<<' ';
}
int main()
{
int n,sol,lmax,p;
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
bst[1]=1;
pred[1]=-1;
for(int i=2;i<=n;i++)
{
bst[i]=1;
pred[i]=-1;
for(int j=1;j<i;j++)
{
if(a[j]<a[i] && 1+bst[j]>bst[i])
{
bst[i]=1+bst[j];
pred[i]=j;
}
}
}
lmax=bst[1];
p=1;
for(int i=2;i<=n;i++)
{
if(bst[i]>lmax){
lmax=bst[i];
p=i;
}
}
fout<<lmax<<'\n';
afisare(p);
return 0;
}