Cod sursa(job #319319)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 31 mai 2009 14:56:28
Problema Subsir 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
long n,i,a[5005],t[5005],p[5005],j,min;
int main()
{
 freopen("subsir2.in","r",stdin);
 freopen("subsir2.out","w",stdout);
 scanf("%ld",&n);
 for(i=1;i<=n;++i)
    scanf("%ld",&a[i]);
 a[0]=-2000000000;
 for(i=n;i>=0;--i)
    {min=2000000000;
     t[i]=2000000000;
     for(j=i+1;j<=n;++j)
        {if((a[j]<min&&t[j]<=t[i])&&a[j]>=a[i])
          {t[i]=t[j];
           p[i]=j;}
         if(a[j]<min&&a[j]>=a[i])min=a[j];}
     if(t[i]==2000000000)t[i]=0;
     ++t[i];}
 i=p[0];
 printf("%ld\n",t[i]);
 while(i)
 {printf("%ld ",i);
  i=p[i];}
 printf("\n"); 
 return 0;
}