Cod sursa(job #393296)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 9 februarie 2010 10:18:54
Problema Subsir crescator maximal Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
int n,v[100],c[100],max,poz,d[100];

void solve()
{
int i,j;
  for(i=n-1;i>0;i--)
  {c[i]=-1;
   d[i]=1;
     for(j=i+1;j<=n;j++)
       if(d[i]<d[j]+1 && v[i]<v[j])
         {d[i]=d[j]+1;c[i]=j;
           if(d[i]>max)
             max=d[i],poz=i;
         }
      }
}
       

int main()
{freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
c[n]=-1;
d[n]=1;
max=1;poz=n;
solve();

printf("%d\n",max);
while(poz!=-1){
printf("%d ",v[poz]);
poz=c[poz];}
fclose(stdin);
fclose(stdout);
return 0;

}