Pagini recente » Cod sursa (job #1402789) | Cod sursa (job #1709668) | Cod sursa (job #1430736) | Cod sursa (job #1278685) | Cod sursa (job #1609407)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("scmax.in");
ofstream out ("scmax.out");
int lung[100005],pred[100005],n;
long long a[100005];
void afis(int p)
{
if(pred[p]!=0)
afis(pred[p]);
out<<a[p]<<" ";
}
int main()
{
int i,j,max=0,p;
in>>n;
for(i=1; i<=n; i++)
in>>a[i];
lung[1]=1;
for(i=2; i<=n; i++)
{
lung[i]=0;
pred[i]=0;
for(j=1; j<i; j++)
if(a[j]<a[i])
if(lung[j]>lung[i])
{
lung[i]=lung[j];
pred[i]=j;
}
lung[i]++;
if(lung[i]>max)
{
max=lung[i];
p=i;
}
}
out<<max<<'\n';
afis(p);
return 0;
}