Cod sursa(job #223301)

Utilizator bacerandreiBacer Andrei bacerandrei Data 28 noiembrie 2008 09:24:28
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream.h>

int v[20] , l[20] , n , i , k , max , t;


int main()
{
  ifstream f("scmax.in");
  ofstream g("scmax.out");
   f>>n;
    for(i = 1 ; i <= n ; i++)
     f>>v[i];
    f.close();
  l[n] = 1;
   for(k = n - 1 ; k >= 1 ; k--)
    {
      max = 0;
       for(i = k + 1 ; i <= n ; i++)
	if(v[i] > v[k] && l[i] > max)
	  max = l[i];
      l[k] = 1 + max;
    }
   max = l[1];
   t = 1;
    for(k = 1 ; k <= n ; k++)
     if(l[k] > max)
      {
	max = l[k];
	t = k;
      }
    g<<max<<"\n"<<v[t]<<" ";
     for(i = t + 1 ; i <= n ; i++)
      if(v[i] > v[t] && l[i] == max - 1)
       {
	 g<<v[i]<<" ";
	 max--;
       }
    g.close();
  return 0;
}