Cod sursa(job #1133919)

Utilizator EpictetStamatin Cristian Epictet Data 5 martie 2014 20:03:05
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,maxim,p,pd[100009],A[100009],poz[100009];
int main()
{
    f >> n;
    for(int i=1; i<=n; i++) f >> A[i];
    p = n;
    for(int i=n; i>=1; i--)
    {
        pd[i] = 1;
        poz[i] = -1;
        for(int j=i+1; j<=n; j++)
        {
            if(A[i]<A[j] && pd[i]<pd[j]+1)
            {
                pd[i] = pd[j]+1;
                poz[i] = j;
            }
            if(pd[i] > maxim) maxim = pd[i], p=i;
        }
    }
    while(p != -1)
    {
        g << A[p] << " ";
        p = poz[p];
    }

    g.close();
    return 0;
}