Pagini recente » Cod sursa (job #3241690) | Cod sursa (job #1025066) | Cod sursa (job #969769) | Cod sursa (job #2403368) | Cod sursa (job #2280040)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int c[100001],best[100001],pre[100001],sir[100001];
int n,maxim,indice,contor;
int main()
{
cin>>n;
for (int i=1;i<=n;++i)
cin>>c[i];
best[1]=1;
for (int i=1;i<=n;++i)
{
maxim=0;
for (int j=2;j<i;++j)
{
if (best[j]>maxim&&c[j]<c[i])
{
maxim=best[j];
pre[i]=j;
}
}
best[i]=1+maxim;
}
maxim=0;
for(int i=1;i<=n;++i)
if(best[i]>maxim)
{
indice=i;
maxim=best[i];
}
out<<maxim<<'\n';
contor=1;
while(indice)
{
sir[contor]=c[indice];
indice=pre[indice];
++contor;
}
--contor;
for(int i=contor;i>=1;--i)
out<<sir[i]<<" ";
return 0;
}