Pagini recente » Cod sursa (job #1671824) | Cod sursa (job #687510) | Cod sursa (job #2958752) | Cod sursa (job #1788680) | Cod sursa (job #358709)
Cod sursa(job #358709)
#include <iostream>
#include <fstream>
using namespace std;
ofstream fout("scmax.out");
int i,n;
int a[100001],l[100001],t[100001];
void afish(int);
int main()
{
ifstream f("scmax.in");
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
f.close();
l[1]=1;
t[1]=0;
int max=1,j,g=1;
for(i=2;i<=n;i++)
{
int maxim=0,k=0;
for(j=1;j<i;j++)
{
if(a[j]<a[i]&&l[j]>maxim) { k=j;maxim=l[k];}
}
if(k) { l[i]=l[k]+1; t[i]=k;}
else { l[i]=1;t[i]=0;}
}
for(i=1;i<=n;i++)
{
if(l[i]>max) { max=l[i];g=i;}
}
fout<<max<<'\n';
afish(g);
return 0;
}
void afish(int k)
{
if(k)
{
afish(t[k]);
fout<<a[k]<<" ";
}
}