Cod sursa(job #315653)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 16 mai 2009 17:48:01
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
# include <stdio.h>
int a[100005],s[100005],l[100005],i,j,n,x,ok,k,p,c[100005],max;
int main ()
{
freopen ("scmax.in","r",stdin);
freopen ("scmax.out","w",stdout);
scanf ("%i",&n);
for (i=1;i<=n;i++)
scanf ("%i",&a[i]);
k=1;
l[1]=1;
s[1]=a[1];
for (i=2;i<=n;i++)
{
x=a[i];
ok=0;
for (j=1;j<=k;j++)
if (s[j]>=x)
{
s[j]=x;
ok=1;
l[i]=j;
break;
}
if (ok==0)
{
k++;
s[k]=x;
l[i]=k;
}
}
max=0;
for (i=1;i<=n;i++)
if (max<l[i])
{
max=l[i];
p=i;
}
printf ("%i",max);

k=max;
for (i=p;i>=1;i--)
if (l[i]==k)
{
k--;
c[l[i]]=a[i];
}
printf ("\n");
for (i=1;i<=max;i++)
printf ("%i ",c[i]);


return 0;
}