Pagini recente » Cod sursa (job #1979510) | Cod sursa (job #916765) | Cod sursa (job #1933685) | Cod sursa (job #2420467) | Cod sursa (job #1238499)
#include <fstream>
#define N 100000
using namespace std;
int v[N], q[N], s[N], solutie[N];
int n, i, j, nr, lungime;
int main() {
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for (int i = 1 ;i<=n; ++i) f>>v[i];
nr = 0;
for (int i = 1 ; i<=n; ++i) {
if (v[i]>s[nr]) {
++nr;
s[nr] = v[i];
q[i] = nr;
}
else {
for (int j = 1; j<=nr; ++j) {
if (s[j] >=v[i]) {
s[j] = v[i];
q[i] = j;
break;
}
}
}
}
g<<nr<<"\n";
lungime = nr;
for (int i = n; i>=1; --i) {
if (q[i] == nr) {
solutie[nr] = v[i];
--nr;
}
}
for (int i = 1; i<=lungime ; ++i) {
g<<solutie[i]<<" ";
}
}