Cod sursa(job #1526327)

Utilizator CidanielCraciun Ioan Daniel Cidaniel Data 16 noiembrie 2015 09:29:21
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>

using namespace std;

int main()
{
    ifstream f ("scmax.in");
    ofstream g ("scmax.out");
    long l[100000]={0}, v[100000], i, n, j, a, c[100000], Max=0, Maxi;
    f>>n;
    for (i=0; i<n; i++)
        {
            f>>v[i];
        }
    l[0]=1;
    for (i=1; i<n; i++)
        {
                l[i]=1;
                j=i-1;
                while ((j>=0)&&(v[j]>=v[i]))
                    {
                        j--;
                    }
                if (j>=0)
                    {
                        l[i]=l[j]+1;
                    }
                if (l[i]>Max)
                    {
                        Max=l[i];
                        Maxi=i;
                    }
        }
    a=Max-1;
    c[Max-1]=v[Maxi];
    for (i=Maxi-2; i>=0; i--)
        {
            if ((l[i]==a)&&(v[i]<c[a]))
                {
                    a--;
                    c[a]=v[i];
                }
        }
    for (i=0; i<Max; i++)
        {
            g<<c[i]<<' ';
        }
    f.close();
    g.close();
    return 0;
}