Pagini recente » Cod sursa (job #131080) | Cod sursa (job #2831727) | Cod sursa (job #3186534) | Cod sursa (job #555603) | Cod sursa (job #360287)
Cod sursa(job #360287)
#include <iostream>
using namespace std;
int s1[100002],s2[100002],a[100002],lg,n;
void citire()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
}
int main()
{
freopen ("scmax.in","r",stdin);
freopen ("scmax.out","w",stdout);
citire();
int lg=0,j,i;
for(i=0;i<n;i++)
{
for(j=0;j<lg;j++)
if(s1[j]>a[i])
{
s1[j]=a[i],s2[i]=j;
break;
}
if(j==lg)s1[lg]=a[i],s2[i]=lg++;
}
cout<<lg<<endl;
lg--;
int k=0;
int fin[100002];
for(i=n-1;i>=0&&lg>=0;i--)
if(s2[i]==lg)
{
fin[++k]=a[i];
lg--;
}
while(k)
cout<<fin[k--]<<" ";
return 0;
}