Cod sursa(job #2233079)

Utilizator sidorencuoanaSidorencu Oana Alexandra sidorencuoana Data 22 august 2018 09:58:30
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#define MAX 100000

using namespace std;

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

int N,t=0;
long int a[MAX],l[MAX];

void SECMAX (int N,long int a[MAX])
{
    int i,k,max,max2=0;
    l[N]=1;
    for(i=N-1;i>=1;i--)
    {
        max=0;
        for(k=i+1;k<=N;k++)
           if(a[k]>a[i] && l[k]>max)
           max=l[k];
        l[i]=1+max;
        if(l[i]>max2)
       {max2=l[i];
       t=i;
       }
    }
    g<<max2<<endl;
}

void Afisare(int N,long int a[MAX])
{
    int i,max=l[t];
    g<<a[t]<<" ";
    for(i=t+1;i<=N;i++)
    if(a[i]>a[t] && l[i]==max-1)
    {
        g<<a[i]<<" ";
        max--;
    }
}

int main()
{int i;
f>>N;
for(i=1;i<=N;i++)
f>>a[i];

SECMAX(N,a);
g<<t;
Afisare(N,a);

    return 0;
}