Pagini recente » Cod sursa (job #390157) | Cod sursa (job #1408771) | Cod sursa (job #3227204) | Cod sursa (job #805149) | Cod sursa (job #886665)
Cod sursa(job #886665)
# include <cstdio>
# define NMAX 100100
using namespace std;
int n,i,pz,lg;
int a[NMAX],bst[NMAX],poz[NMAX];
void det(int i, int v)
{
if (v<=0) return;
while (poz[i]!=v) i--;
det(i-1,v-1);
printf("%d ",a[i]);
}
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf ("%d",&n);
lg=0;
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
pz=lg+1;
while (pz>0&&bst[pz-1]>=a[i])
pz--;
if (bst[pz]<a[i])
lg++,bst[lg]=a[i],poz[i]=lg;
else
bst[pz]=a[i],poz[i]=pz;
}
printf("%d\n",lg);
det(n,lg);
printf("\n");
return 0;
}