Pagini recente » Cod sursa (job #857676) | Cod sursa (job #48400) | Cod sursa (job #2200581) | Cod sursa (job #2092467) | Cod sursa (job #2609168)
#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[100001];
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() << ' ';
}
}