Cod sursa(job #830839)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 7 decembrie 2012 19:20:26
Problema Subsir crescator maximal Scor 45
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>


 using namespace std;
 ifstream fin("scmax.in");
 ofstream fout("scmax.out");

 int n, v[100001], l[100001];

 void citire()
 {
     fin>>n;
     for(int i=1; i<=n; i++)
     fin>>v[i];
 }

int cauta(int i)
{
    int maxx = 0;
    int k = i - 1;
    for(int j = i; j <= n; j++)
    {
        if(v[j] > v[k])
            if(l[j] > maxx)
                maxx = l[j];
    }
    return maxx;
}

 int main()
 {
    citire();
    l[n] = 1;
    int i = n - 1;
    while(i > 0)
    {
        l[i] = 1 + cauta(i + 1);
        i--;
    }
    int maxim=0, p;


    for(i=1; i<=n; i++)
     if(l[i]>maxim)
     {
         maxim=l[i];
         p=i;
     }
     fout<<maxim<<"\n";
     fout<<v[p]<<" ";
     for(i=p+1; i<=n; i++)
     if(v[i]>v[p])
     {
         fout<<v[i]<<" ";
         p=i;
     }

     fin.close();
     fout.close();
     return 0;
 }