Cod sursa(job #504843)

Utilizator raul_rautzuBedeoan Raul raul_rautzu Data 28 noiembrie 2010 23:22:58
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include<fstream>

using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int l[100],p[100],a[100],n,x;
int m;

void pd () {
  int mlu, i, j;

  l[n] = 1;
  for (i = n-1; i >= 1; i--) {
    mlu = 0;
    for (j = i+1; j <= n; j++)
      if (a[i]<a[j] and l[j] > mlu)
        {
         mlu = l[j];
         p[i]=j;
           }
    l[i] = mlu+1;
  }
}
  void refac(int o)
  {

        fo<<a[o]<<" ";
      while(p[o]!=0)
      {
       o=p[o];
       fo<<a[o]<<" ";
      }
     }
int main()
{
    int i;
    fi>>n;
    for(i=1;i<=n;i++)
       fi>>a[i];
 pd();
 for(i=1;i<=n;i++)
   if(m<l[i])
    {
      m=l[i];
      x=i;
     }
fo<<m<<"\n";
refac(x);


}