Pagini recente » Cod sursa (job #934742) | Cod sursa (job #2705898) | Cod sursa (job #2632221) | Cod sursa (job #2956222) | Cod sursa (job #2515036)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int main()
{
long long n;
long long lmax=1;
vector <long long> v;
fin>>n;
long long a[n+1];
long long best[n+1];
long long pre[n+1];
for(long long i=1;i<=n;i++)
fin>>a[i];
best[1]=1;
pre[1]=-1;
for(long long i=2;i<=n;i++)
{
best[i]=1;
pre[i]=-1;
for(long long j=1;j<i;j++)
if(a[j]<a[i] && best[i]<best[j]+1)
{
best[i]=best[j]+1;
pre[i]=j;
if(lmax<best[i])
lmax=best[i];
}
}
fout<<lmax<<"\n";
for(long long i=1;i<=n;i++)
if(pre[i]!=-1 && pre[i]!=pre[i-1])
v.push_back(i);
fout<<a[v[0]-1]<<" ";
for(long long s=0;s<v.size();s++)
fout<<a[v[s]]<<" ";
return 0;
}