Cod sursa(job #368226)

Utilizator APOCALYPTODragos APOCALYPTO Data 24 noiembrie 2009 10:50:16
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<iostream>
using namespace std;
int main()
{int a[100],l[100],ante[100],maxi,i,j,n,p;
    cin>>n;
    for(i=1;i<=n;i++)
      cin>>a[i];

    l[n]=1;
    ante[n]=-1;
    for(i=n-1;i>=1;--i)
    {ante[i]=-1;
    l[i]=1;
    for(j=i+1;j<=n;++j)
     if(a[i]<=a[j] && l[i]<l[j]+1)
         {
         l[i]=l[j]+1;
         ante[i]=j;

        }

}


   maxi=0;
   for(i=1;i<=n;i++)
    {if(l[i]>maxi)
    maxi=i;
    }

   cout<<l[maxi]<<'\n';

   while(maxi!=-1)
   {cout<<a[maxi]<<" ";
   maxi=ante[maxi];
   }

return 0;
}