Pagini recente » Cod sursa (job #2767047) | Cod sursa (job #635164) | Cod sursa (job #1432873) | Cod sursa (job #1923274) | Cod sursa (job #2609174)
#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() << ' ';
}
}