Cod sursa(job #2694314)

Utilizator Antonia_onisoruantonia onisoru Antonia_onisoru Data 8 ianuarie 2021 19:02:42
Problema Subsir crescator maximal Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAXN = 100000;

int v[MAXN];
int a[MAXN];
int ind[MAXN], ind_max[MAXN];

int main()
{
    int n, i, j, lung, lung_max, cont, k;
    in>>n;
    for( i = 0; i < n; i++ ){
      in>>v[i];
    }
    lung_max = 0;
    cont = 0;
    for( i = 0; i < n; i++ ){
      a[i] = 1;
      for( j = 0; j < i; j++ ){
        if( v[j] < v[i] ){
          if( a[i] < a[j] + 1 ){
            a[i] = a[j] + 1;
            ind[cont] = j;
            cont++;
          }
        }
        if( a[i] > lung_max ){
          lung_max = a[i];
          for( k = 0; k <= cont; k++ ){
            ind_max[k] = ind[k];
          }
          ind_max[cont] = i;

        }
      }
      cont = 0;
    }
    out<<lung_max<<'\n';
    for( i = 0; i < lung_max; i++ )
      out<<v[ind_max[i]]<<" ";
    return 0;
}