Cod sursa(job #2609174)

Utilizator juniorOvidiu Rosca junior Data 2 mai 2020 11:48:41
Problema Subsir crescator maximal Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <stack>

using namespace std;

struct element {
  int v, l; // valoarea, locul
};

ifstream fin("scmax.in");
ofstream fout("scmax.out");
stack<int> s[10001];
int n, a, ns;
bool gasita;

int main() {
  fin >> n;
  for (int i = 1; i <= n; i++) {
    fin >> a;
    gasita = false;
    for (int is = 1; is <= ns and not gasita; is++)
      if (a <= s[is].top()) { // <
        if (is < ns) {
          gasita = true;
        }
        else { // is == ns
          s[ns].push(a);
          gasita = true;
        }
      }
    if (not gasita) {
      ns++; s[ns].push(a);
    }
  }
  fout << ns << '\n';
  for (int is = 1; is <= ns; is++) {
    fout << s[is].top() << ' ';
  }
}