Cod sursa(job #1109446)

Utilizator KillerSHChirila Stefan KillerSH Data 17 februarie 2014 10:16:50
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

vector<int> pre, a, lg;

ifstream f("scmax.in");
ofstream g("scmax.out");

void afisare (int k)
{
    if (k==0)
        return ;
    afisare (pre[k]);
    g<<a[k]<<' ';
}

int main()
{
    int i,j,n,max=1;
    f>>n;
    pre.resize(n+1);
    a.resize(n+1);
    lg.resize(n+1);
    for (i=1; i<=n; i++)
        f>>a[i];
    for (i=1; i<=n; i++)
    {
        lg[i]=1;
        pre[i]=0;
        for (j=i-1; j>0; j--)
            if (lg[i]<=lg[j] && a[i]>a[j])
            {
                lg[i]=lg[j]+1;
                pre[i]=j;
            }
        if (lg[max]<lg[i]) {
            max=i;
            j=0;
        }

        //cout<<lg[i]<<' '<<pre[i]<<endl;
    }
    g<<lg[max]<<endl;
    afisare (max);
}