Cod sursa(job #1131635)

Utilizator DisturbedTeuca Sergiu Disturbed Data 28 februarie 2014 22:39:47
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <sstream>
using namespace std;

const int NMAX = 100;
int n;

void LIS(int v[])
{
    int Size[NMAX];
    string Path[NMAX];

    for(int i=0; i<=n; i++)
    {
        Size[i] = 1;
        stringstream ss;
        ss<<v[i];
        Path[i] = ss.str();
    }

    int maxLength = 0;
    for(int i=1; i<=n; i++)
        for(int j=0; j<=i; j++)
            if(v[i]>v[j] && Size[i]<Size[j]+1)
            {
                Size[i] = Size[j]+1;
                stringstream ss;
                ss<<Path[j]<<" "<<v[i];
                Path[i] = ss.str();
                if(maxLength<Size[i])
                    maxLength = Size[i];
            }
    cout<<"LIS este: "<<maxLength;
    for(int i=0; i<=n; i++)
        if(Size[i] == maxLength)
            {
                cout<<endl<<Path[i];
                break;
            }
}

int main()
{
    int a[] = {1,2,3,4};
    n=3;
    LIS(a);
}