Cod sursa(job #643899)
Utilizator | Anghel Anca Athena99 | Data | 4 decembrie 2011 17:22:50 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <stdio.h>
int v[101],p[101],q[10],m[101];
int main()
{
int n=0,j=0,i=0,k=0;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (i=1; i<n+1; ++i)
{
scanf("%d",&v[i]);
for (j=1; j<k+2; ++j)
if ((p[j]>v[i] || j==i || j>k) && v[i]>p[j-1])
{
p[j]=v[i];
q[i]=j;
if (j>k) ++k;
j=k+4;
}
}
printf("%d\n",k);j=0;
for (i=n+1; i>0; --i)
if (q[i]==k)
{
m[j++]=v[i];
--k;
}
for (i=j-1; i>-1; --i) printf("%d ",m[i]);
return 0;
}