Pagini recente » Monitorul de evaluare | Cod sursa (job #2130247) | Cod sursa (job #1182274) | Cod sursa (job #132053) | Cod sursa (job #1552776)
#include <cstdio>
using namespace std;
int n,sir[100000],nr[100000];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d\n",&n);
for(int i=0; i<n; i++)
{
scanf("%d ",&sir[i]);
}
nr[n-1]=1;
for(int i=n-2; i>=0; i--)
{
int max=1;
for(int j=i+1; j<n; j++)
{
if(sir[i]<sir[j] && nr[j]>max)
{
max=nr[j];
}
}
nr[i]=max+1;
}
int max=0;
for(int i=0; i<n; i++)
{
if(nr[i]>max)
{
max=nr[i];
}
}
printf("%d\n",max);
for(int i=0; i<n; i++)
{
if(nr[i]==max)
{
printf("%d ",sir[i]);
max--;
}
}
return 0;
}