Pagini recente » Cod sursa (job #2838900) | Cod sursa (job #2861976) | Cod sursa (job #104276) | Cod sursa (job #3245994) | Cod sursa (job #485383)
Cod sursa(job #485383)
#include <cstdio>
using namespace std;
int a[100005],s1[100001],s2[100005],max,n,l,maxi,k[100005],k1;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
for (int i=0;i<n;i++)
{
max=2000000000;
for (int j=0;j<=l;j++)
if (s1[j]>=a[i])
if (max>s1[j])
{
max=s1[j];
maxi=j;
}
if (max==2000000000)
{
s1[l]=a[i];
s2[i]=l;
l++;
}
else
{
s1[maxi]=a[i];
s2[i]=maxi;
}
}
printf("%d\n",l);
l--;
for (int i=n-1;i>=0;i--)
if (s2[i]==l)
{
k[k1]=a[i];
k1++;
//printf("%d ",a[i]);
l--;
}
for (int i=k1-1;i>=0;i--)
printf("%d ",k[i]);
return 0;
}