Pagini recente » Cod sursa (job #647249) | Cod sursa (job #833761) | Cod sursa (job #1408415) | Cod sursa (job #687921) | Cod sursa (job #1517738)
#include <iostream>
#include <fstream>
using namespace std;
int sir[100005],n;
int k[100005];
int subsir[100005];
int lmax,poz;
void citire()
{
scanf("%d\n",&n);
for(int i=1;i<=n;++i)
scanf("%d\n",&sir[i]),k[i]=1;
}
void rez()
{
for(int i=n;i>=1;--i)
for(int j=i+1;j<=n;++j)
if(sir[i]<sir[j] && k[i]<k[j]+1)
k[i]=k[j]+1;
for(int i=1;i<=n;i++)
if(k[i]>lmax)
lmax=k[i],poz=i;
printf("%d\n",lmax);
}
void drum()
{
cout<<sir[poz]<<" ";
for(int i=poz;i<=n;i++)
if(lmax-1==k[i] && sir[i]>sir[poz])
{
poz=i;
cout<<sir[i]<<" ";
lmax--;
}
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
citire();
rez();
drum();
return 0;
}