Cod sursa(job #661812)

Utilizator suzanicaSuzanica Mihu suzanica Data 15 ianuarie 2012 12:19:11
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;

long  v[100003] , l[100003] , maxim , t;

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