Cod sursa(job #2343941)

Utilizator Stefan3002Stefan Stefan3002 Data 14 februarie 2019 16:07:56
Problema Subsir crescator maximal Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream intrare("scmax.in");
ofstream iesire("scmax.out");
const int NMAX=100000;
int maxim=0,maxim2=0;
int n;
int a[NMAX+2];
int aux[NMAX+2];

struct tabel{

int lg,pred;

}tabel[NMAX];

int main()
{
    int i,j;
    intrare>>n;
    for(i=1;i<=n;i++){
        intrare>>a[i];
        tabel[i].lg=1;
    }

    for(i=1;i<=n;i++){
        for(j=1;j<i;j++)
        if(a[i]>a[j]){
            tabel[i].lg=1+tabel[j].lg;
            tabel[i].pred=j;
            if(tabel[i].lg>=maxim){
                maxim=tabel[i].lg;
                    maxim2=i;
            }
        }
    }
    j=1;
iesire<<maxim<<endl;
for(i=maxim2;i>=1;i=tabel[i].pred)
    aux[j++]=a[i];
for(i=j-1;i>=1;i--)
    iesire<<aux[i]<<" ";


    return 0;
}